我有两种DB结构变体。
首先:
这是一个评论表,以及两个将评论与素材相关联的特殊表格'news_comments'和'photos_comments'。
第二种变体:
这里只有3个表,没有连接器表,但是表注释有一个特殊的字段'type',它将与查询一起使用。
例如:SELECT * FROM comments WHERE type = 'news';
问题: 我不知道哪种变体更好。我认为第二,但这是正确的吗?
答案 0 :(得分:1)
我的第一个解决方案似乎支持多对多的关系,并且是我的首选。
第二张照片仅支持评论的单张照片和评论的单个新闻项目。
答案 1 :(得分:1)
除非单个评论可以应用于多个照片和/或新闻项目,否则第二个选项更能代表并“强制执行”数据中的逻辑概念。但是,我建议将photos_id
和news_id
替换为item_id
,其中 <{1}} 或 a photos_id
,并将news_id
从type
更改为varchar
。
同样,这是假设任何给定的评论适用于一个新闻项目或一张照片,而不是两个,并且从不多于一个(这通常是评论系统如何工作,嗯?)。