正确的mysql结构

时间:2013-05-22 16:11:22

标签: mysql database mysql-workbench

我有两种DB结构变体。

首先: enter image description here

这是一个评论表,以及两个将评论与素材相关联的特殊表格'news_comments'和'photos_comments'。

第二种变体: enter image description here

这里只有3个表,没有连接器表,但是表注释有一个特殊的字段'type',它将与查询一起使用。

例如:SELECT * FROM comments WHERE type = 'news';

问题: 我不知道哪种变体更好。我认为第二,但这是正确的吗?

2 个答案:

答案 0 :(得分:1)

我的第一个解决方案似乎支持多对多的关系,并且是我的首选。

第二张照片仅支持评论的单张照片和评论的单个新闻项目。

答案 1 :(得分:1)

除非单个评论可以应用于多个照片和/或新闻项目,否则第二个选项更能代表并“强制执行”数据中的逻辑概念。但是,我建议将photos_idnews_id替换为item_id,其中 <{1}} a photos_id,并将news_idtype更改为varchar

同样,这是假设任何给定的评论适用于一个新闻项目或一张照片,而不是两个,并且从不多于一个(这通常是评论系统如何工作,嗯?)。