构建数据库表的最佳方法是什么?

时间:2013-12-21 01:12:42

标签: sql database database-design

我在设计数据库架构时遇到问题 我怀疑是否要分开或分组表。

我的应用程序和数据库中有一个博客和一个新闻部分。两人都收到评论和喜欢。

TABLE.BLOG | TABLE.COMMENTS.BLOG | TABLE.LIKE.BLOG
TABLE.NEWS | TABLE.COMMENTS.NEWS | TABLE.LIKE.NEWS

我分享一切吗?

TABLE.BLOG | TABLE.NEWS
TABLE.COMMENTS | TABLE.LIKE

或者我应该将评论分组?

如果我应该有某种参考类型博客|消息?

我对构建数据库的最佳方法感到非常困惑 如果有人可以帮助我,我真的很感激。

2 个答案:

答案 0 :(得分:3)

虽然确切的布局主要取决于您访问和使用数据的方式,但您可能会更喜欢评论和喜欢坐在同一张桌子上。你的第二种方法很接近,虽然我可能会引入一个名为CONTENT的第三个表,其中包含可以被喜欢或评论的任何ID。

NEWSBLOG表中的每一行在CONTENT表中都有一个对应的行。 CONTENT行可以对应NEWSBLOG,但不能同时对应CONTENTLIKECOMMENT表具有博客和新闻共有的属性(日期,标题,作者等)。

然后CONTENTNEWS表将连接到BLOG表,因此您不需要为{{1}}和{{1}复制这两个表}}

以下是插图:

Illustration

答案 1 :(得分:0)

最好是主观的,虽然我有两张桌子:

Content  (news and blog content, store like count)
Comment  (news and blog comments)

然后在两者上添加一个区分博客和新闻的类型字段。这样你就可以重用很多db代码。

IOW,如果可以的话,尽量减少表的数量。