2012-08-28 40 views
-1

我有一個存儲用戶的表格,另一個存儲發佈信息的表格和一個存儲評論的第三個表格。允許未註冊/註冊用戶評論帖子的最佳做法是什麼?

我想允許未註冊的註冊用戶對帖子發表評論。

什麼是最佳實踐的數據庫設計?我應該如何將未註冊或已註冊的評論者信息存儲在數據庫中?

+0

這是非常不明確的。給我們一些背景。 –

+0

問題已編輯。 – KiarashSZ

回答

0

您可以創建一個虛擬用戶記錄,其中包含訪客用戶在您的用戶表中的名稱,電子郵件,網站以及將該評論鏈接到虛擬用戶的ID。

編輯:給你的意見已經添加了更多的信息:

創建一個基本Users

  • ID
  • 名稱
  • 電子郵件
  • 網站

創建第二個RegisteredUsers表,其中包含註冊用戶需要的附加字段,並將這兩個表之間的關係定義爲Users.Id = RegisteredUsers.Id。

Comments表中將有一個CreatedByUserId字段,其​​中CreatedByUserId = Users.Id

+0

但我的註冊用戶在用戶表中有非常列,在這種情況下必須將另一列設置爲空,這是非常糟糕的主意! – KiarashSZ

+1

如果你不共享你的表模式,我們很難評論。您最好將用戶表分成兩部分,一部分用於基本字段,另一部分用於額外註冊的用戶字段。 – cspolton

+0

這是一個好主意,我將未註冊的信息存儲在訪客表中,並添加一個IsGuest字段以位類型註釋表並保存在用戶表或用戶表的註釋表用戶ID的用戶ID字段中? – KiarashSZ

1

null置於評論表的userID字段中,以便爲來賓製作評論,或者更好地創建一個名爲「Guest」的新用戶並將評論分配給他們。

或者,在評論表中添加一個名爲guest或類似內容的新列。將其設置爲布爾值並將其打開以供客人評論,關閉註冊用戶評論。

有很多方法,沒有一個是「正確的」方法。使用最適合您的系統的任何一種。

+0

非常好,但我想存儲未註冊的用戶信息的評論(如姓名,電子郵件,網站),現在你的答案是什麼? – KiarashSZ

+0

聽起來就是他們需要註冊的所有信息... –

+1

我會爲「訪客」用戶投票,通過'null'值。 – cspolton