我在设计数据库架构时遇到问题
我怀疑是否要分开或分组表。
我的应用程序和数据库中有一个博客和一个新闻部分。两人都收到评论和喜欢。
TABLE.BLOG | TABLE.COMMENTS.BLOG | TABLE.LIKE.BLOG
TABLE.NEWS | TABLE.COMMENTS.NEWS | TABLE.LIKE.NEWS
我分享一切吗?
TABLE.BLOG | TABLE.NEWS
TABLE.COMMENTS | TABLE.LIKE
或者我应该将评论分组?
如果我应该有某种参考类型博客|消息?
我对构建数据库的最佳方法感到非常困惑 如果有人可以帮助我,我真的很感激。
答案 0 :(得分:3)
虽然确切的布局主要取决于您访问和使用数据的方式,但您可能会更喜欢评论和喜欢坐在同一张桌子上。你的第二种方法很接近,虽然我可能会引入一个名为CONTENT
的第三个表,其中包含可以被喜欢或评论的任何ID。
NEWS
和BLOG
表中的每一行在CONTENT
表中都有一个对应的行。 CONTENT
行可以对应NEWS
或BLOG
,但不能同时对应CONTENT
或LIKE
。 COMMENT
表具有博客和新闻共有的属性(日期,标题,作者等)。
然后CONTENT
和NEWS
表将连接到BLOG
表,因此您不需要为{{1}}和{{1}复制这两个表}}
以下是插图:
答案 1 :(得分:0)
最好是主观的,虽然我有两张桌子:
Content (news and blog content, store like count)
Comment (news and blog comments)
然后在两者上添加一个区分博客和新闻的类型字段。这样你就可以重用很多db代码。
IOW,如果可以的话,尽量减少表的数量。