私は、ログイン時に管理者から通知を受け取る必要があるユーザーのためのWebアプリケーションを作成しています。これらの通知は、ダッシュボードに表示する必要があります。ユーザーのための通知システムのスキーマ
ユーザーがメッセージを読んだら、一度そのメッセージを閉じることができます。新しいユーザーは、メッセージが作成される前に表示されてはいけません。私は、ユーザーがメッセージを「却下」したことを確認するにはどうすればよい
- :
私は、スキーマを設計するには二つの問題を抱えていますか?
- 新しいユーザーは作成後にメッセージを表示するにはどうすればよいですか?
は、ここで通知用のテーブルです:#1については
CREATE TABLE [dbo].[Notification]
(
[Id] [int] IDENTITY(1,1) NOT NULL,
[Message] [varchar](max) NOT NULL,
[DateCreated] [datetime] NOT NULL,
[CreatedById] [int] NOT NULL
)
、私は(DismissedNotification_User
)テーブルを作成することを考えていたNotification.Id
とUser.Id
の間でマップすること。ペアが存在する場合、ユーザーはその通知を破棄しました。しかし、これが最良のアプローチ(not in
対left join
)であるかどうかはわかりません。
#2の場合、ユーザーにDateCreated
列を追加し、#1(where [DateCreated] >= [User].DateCreated
)に条件を追加すると、最も簡単な方法がわかります。
クッキーが必要なのは、本当に不要な重量がアプリケーションに加わるからです。 #1のために
ありがとうございます - 私は私の元の計画に固執するつもりです。 – TheCloudlessSky
私はそれが最も賢明な選択肢だと思います、私は最近アラートシステムと同様のことをしました。ユーザーごとに行を挿入して削除することを検討しましたが、2-3kのユーザーがいて、アラートはおそらく10-20ユーザーにしか関係しないため、決して触れないであろう何千もの行を追加するのは非効率的でした。 – dougajmcdonald