我正在爲需要在管理員登錄時能夠接收通知的用戶編寫Web應用程序。這些通知應顯示在其儀表板上。用戶通知系統的架構
一旦用戶閱讀了消息,他們可以解僱它。顯然,新用戶在創建之前不應顯示消息。
我有兩個問題,設計模式:
- 如何識別用戶已「開除」的消息?
- 新用戶在創建後只能看到消息嗎?
這裏的表通知:
CREATE TABLE [dbo].[Notification]
(
[Id] [int] IDENTITY(1,1) NOT NULL,
[Message] [varchar](max) NOT NULL,
[DateCreated] [datetime] NOT NULL,
[CreatedById] [int] NOT NULL
)
#1,我想創建一個表(DismissedNotification_User
),將一個Notification.Id
和User.Id
之間進行映射的。如果存在一對,則用戶駁回該通知。但是,我不確定這是否是最好的方法(not in
vs left join
)?
對於#2,我看到的最簡單方法是向用戶添加DateCreated
列,並在#1(where [DateCreated] >= [User].DateCreated
)上添加條件。
我不想要cookies,因爲這確實會給應用程序增加不必要的重量。
謝謝 - 我將堅持我原來的計劃。 – TheCloudlessSky 2012-03-06 13:17:12
我認爲這是最明智的選擇,我最近做了類似警報系統的工作。我打算爲每個用戶插入一行並刪除它們,但由於我們有2-3,000個用戶,並且警報一次只能與10-20個用戶相關,因此添加數千行永遠不會觸及的行似乎效率低下。 – dougajmcdonald 2012-03-06 14:47:43