Sql-Server
這是朝著規範化正確方向邁出的一步嗎?SQL“繼承”和多對多關係
語境:
所以,這是一個複合問題,但它們在一起,絕對沒有意義分成單獨的問題。
我一直在為最終成為程序員的部落格/作品集的新數據庫工作,偶爾會提供教程或展示,用 ASP.NET MVC 5 和 Entity Framework 6 編寫。大約在設計數據庫架構的一半時,我注意到幾乎所有表都包含相同的 5 個基本列:ID、Title、Description、DatePosted 和 URLStub。雖然不一定是多餘的,因為大多數數據都是唯一的,除了文章連結到展示的地方,它看起來是錯誤的或草率的。
楷模:
這是我最初著手製作的模型:
我發誓我自動安排/自動調整了這些桌子的大小
這就是我最終轉向的方向,但我仍然覺得我在做一些愚蠢的事情:
問題:
- 新模型甚至可以與實體框架一起使用嗎?
- 它比第一個改進(更正常)嗎?
- 我應該擔心第一個嗎?
- 任何人都可以看到新模型天生愚蠢的東西嗎?
提前感謝您的任何意見,如果這會“引起太多討論”或“主要基於意見” ,也提前抱歉。我真的不知道有更好的地方問這個問題,並獲得知識答案。
這看起來像派對關係模型(請參閱https://stackoverflow.com/questions/4969133/database-design-articles-blog-posts-photos-stories)。
我最近經歷了類似的事情,將單個表下的不同內容類型與每個獨特內容類型的子表結合起來。
我不確定實體框架,但是在您擁有的新模型中,您將有一個更簡單的方法來將內容連結到其他內容,方法是在中心位置儲存 ids/主鍵。這是一種常見的設計模式,所以我認為它沒有任何“天生愚蠢”的地方。
我認為您不必擔心第一個問題,但顯然要考慮第二個問題*。*