正确的mysql结构
我有两种不同的DB结构 第一名: 这里有一个评论表和两个特殊的表“新闻评论”和“照片评论”,它们将评论与材料联系起来 第二种变体: 这里只有3个表,没有连接器表,但表注释有一个特殊字段“type”,它将与查询一起使用正确的mysql结构,mysql,database,mysql-workbench,Mysql,Database,Mysql Workbench,我有两种不同的DB结构 第一名: 这里有一个评论表和两个特殊的表“新闻评论”和“照片评论”,它们将评论与材料联系起来 第二种变体: 这里只有3个表,没有连接器表,但表注释有一个特殊字段“type”,它将与查询一起使用 例如:SELECT*FROM comments,其中type='news' 问题: 我不知道哪种变体更好。我认为是第二种,但这是正确的吗?我的第一种解决方案似乎支持多对多关系,这将是我的第一选择 第二个选项只支持一张照片作为评论,一条新闻作为评论。除非一条评论可以应用于多个照
例如:
SELECT*FROM comments,其中type='news'代码>
问题:
我不知道哪种变体更好。我认为是第二种,但这是正确的吗?我的第一种解决方案似乎支持多对多关系,这将是我的第一选择
第二个选项只支持一张照片作为评论,一条新闻作为评论。除非一条评论可以应用于多个照片和/或新闻项目,否则第二个选项可以更好地表示和“强制”数据中的逻辑概念。但是,我建议将photos\u id
和news\u id
替换为item\u id
,它包含photos\u id
或news\u id
,并将类型从varchar
更改为enum('news','photo')
同样,这是在假设任何给定的评论都适用于一条新闻或一张照片的情况下进行的,不能同时适用于两条新闻或一张照片,也不能超过一条(这通常是评论系统的工作方式,嗯?)。一条评论如何与新闻和照片联系起来?每种材料都有自己的评论系统,它们是独立的。@user2058653这是一个技术问题还是一个哲学问题?@user2058653好吧,通常理解的评论概念不应该附加到一个以上的“东西”上。因此,我的答案是。但是,我可以设想一个系统,其中在特定页面上的评论与页面上的每一个“事物”松散地关联。