我正在製作一個新聞網站,但我想讓用戶從Facebook插入狀態。用戶可以在寫新聞時將其狀態置於新聞的任何位置。我想在插入新聞時顯示新聞。新聞數據庫設計
這裏的新聞爲例內容
‘有些用戶插入的文本狀態其他一些文字一些其他身份其他文本另一種狀態’
所以我在這種情況下思考什麼是一個好的數據庫設計。狀態有用戶,誰寫了它,日期和內容。新聞有標題,描述和日期。
我已經想出了五張桌子。
表NewsHeader
id
NewsTitle
NewsDesc
NewsDate
User
表NewsContent - 只包含ID和的消息
id
content
表狀態或文字NewsContentDetails消息 - 包含的細節狀態
id
ContentUser
ContentDate
表NewsContentDetailsLink - NewsContent和NewsContentDetails
NewsContentId
NewsContentDetailsId
表的結合表NewsHeaderContent - 結合表NewsHeader的和NewsContent
NewsHeaderId
NewsContentId
這是一個好的數據庫設計還是有更好的方法來做到這一點?我擔心在顯示新聞時,我必須在sql查詢中編寫多個JOIN,並且速度會很慢。
編輯: 數據庫設計由@hrr
**News:**
ID建議|標題|內容|用戶|日期
**Elements:**
ID |內容|用戶|日期| News_ID
但元素某些字段將是空的,我認爲這不是一個很好的選擇。
在此先感謝:)
老實說,我看到的最大的問題是名稱似乎非常通用。我甚至無法理解你如何模擬事物。名稱應該是描述性的,而這些不是。我更喜歡'[NewsArticleHeader]','[NewsArticleContent]'等等,我也喜歡用他們的名字鬆散地組織表格。這裏顯而易見的是'[NewsArticleHeader]'和'[NewsArticleContent]'的名稱。 Terse對象名稱可以在編碼時節省時間打字的時間,但之後會讓閱讀代碼或使用數據庫模式的讀者感到困惑。打字很簡單。理解很難。 –
我編輯了我的問題。我希望現在好一點。 – lam3r4370
什麼會使狀態變得特殊而與整個文本不同?爲什麼不合並,你只需要一個nvarchar(max)字段? –