我正在ASP.NET MVC中創建一個討論論壇(各種),並且我有一個要求允許未註冊的訪問者發佈帖子。訪客只需要指定要發佈的別名,並可以選擇提供電子郵件地址和網站網址。數據庫中的未註冊用戶
處理數據庫中未註冊用戶的帖子的最佳做法是什麼?
我有點在數據庫設計一個新手,但這些方案浮現在腦海中:
- 插入新的用戶表中的每個崗位未登記的訪客記錄。 (當Posts和Users表中的記錄將具有1對1關係時,會使查詢更容易,但會擴大Users表)
- 爲未註冊的用戶創建新表,併爲新的別名 - 電子郵件 - 網址組合創建新條目,重複使用現有的。 (在這種情況下,我將在Posts表中爲RegisteredUserId和UnregisteredUserId有兩個外鍵嗎?)
- 直接將UnregisteredAlias,UnregisteredEmail和UnregisteredUrl字段添加到Posts表中。 (非常非規範化,但是這又對我來說似乎是一個乾淨的解決方案。然後,我會使Posts表的UserId字段爲空,並將它設置爲null(對於這些帖子))。
- 我還沒有想到的顯而易見的解決方案?
這些解決方案是否會導致映射LINQ To SQL時出現問題?
編輯:
爲了澄清,我需要存儲一個別名(名稱),以及可選的電子郵件地址和網址由未註冊訪問者執行每個崗位。此信息與帖子一起顯示,因此在這種情況下訪客!=匿名。
他們還沒有註冊,但.... 「有一個要求允許未註冊的訪問者發佈帖子。」 – BIDeveloper 2009-10-20 11:42:51
註冊或未註冊 - 他們是用戶,他們的自然之家是用戶表。 – 2009-10-20 12:07:25
@Jim - 是的,但即使未註冊的用戶也有一些關於它們的信息(Alias,EMail,URL)。除非您想在同一個未註冊用戶的每篇文章中複製此內容,否則最好的辦法是將其存儲在Users表中,並且有一個「標誌」,用於指示Users表中的給定記錄是已註冊用戶還是未註冊用戶。 – CraigTP 2009-10-20 12:10:52