2011-01-23 114 views
4
  • 用戶可以打開或關閉他的 帳戶 通知設置,通知,如 更改帳戶配置文件信息, 收到新郵件等數據庫設計的通知設置

  • 通知可以發送通過電子郵件或手機(推送或短信),用戶只能有1封電子郵件和許多手機設備。

有沒有什麼可以改善以下的數據庫設計,或者你會做不同的什麼辦法?

讓我知道感謝

USER_NOTIFICATION_SETTING 
Id 
UserId 
Notification_SettingCode 
NotificationTypeCode 
UserDeviceId -- the mobile deviceid 
IsEnabled -- true (notification is on), false (notification is off) 

NOTIFICATION_SETTING 
Code - e.g 1001, 1002 
Name -- e.g Changed Account Profile Information, Received New Message etc 

NOTIFICATION_TYPE 
Code - e.g 1001, 1002 
Name -- e.g Email, SMS, Push 


USER_DEVICE -- the mobile phone device information 
etc...etc... 
+0

在你的想法,每個已更改通知設置可以被髮送到不同的移動設備。 我認爲這是一個不太可能的要求。 – 2011-01-23 13:57:52

回答

0

你所做的一切看起來不錯其實。我會出個人喜好的執行以下操作:

  • 消除對User_Notification_Setting用戶ID列,因爲它應該已經在你的User_Device表
  • 在你的表名
  • 更改代碼字段擺脫_s的在Notification_Setting和Notification_Type中是Id(即使它們不是Identity列),然後將外鍵引用從其他表中更改爲具有更一致的NotificationTypeId字段名稱。
  • 消除IsEnabled字段。記錄存在於路口的事實應該足以提供通知。刪除該記錄意味着沒有通知。我可以看到爲什麼你可能想要記住一次有通知,並且可能在那裏很容易重新啓用,但我看不到存儲在交叉路口的信息,因此刪除同樣好。
0

看起來不錯,只是一些小建議:

  • 代碼字段命名,使用表名,然後_CODE
  • 添加通知所有更改

有一對夫婦的事我不同意Tahbaza上:

  • 我會離開在用戶ID,它是那麼快讓所有通知用戶
  • 我會離開的IsEnabled中,則有可能暫時停止所有通知
3

alt text


或者也許這是傳播自然鑰匙的一個。這有更寬的表格,但需要更少的連接。例如,您可以直接從NotificationQueue獲取UserName的通知。

alt text


或者這一個,如果你只有電話和電子郵件這是不夠好。到目前爲止最簡單 - 我認爲目前我喜歡這個最好的。

alt text