Mysql 一对一关系还是使用同一个表?
我创建了以下表格: 动漫(id,标题,日期),漫画(id,标题,日期),电视系列(id,标题,季节,插曲,日期) 其中一些已经有了导演、流派、文章等的外键(用于一对多或多对多关系) 现在,我想再创建两个表review(id、rating、date)和Posts(id、thumbid、articleid、reviewid)。 评论是关于一部动画和/或喜剧电视剧的,反之亦然,但评论的属性可能在多个表中。一个帖子也一样 这是单独表中一对一关系的典型示例,还是向现有表中添加更多属性更有效? 那么更多的表和关系还是更少的表更多的列Mysql 一对一关系还是使用同一个表?,mysql,database,relational-database,one-to-one,Mysql,Database,Relational Database,One To One,我创建了以下表格: 动漫(id,标题,日期),漫画(id,标题,日期),电视系列(id,标题,季节,插曲,日期) 其中一些已经有了导演、流派、文章等的外键(用于一对多或多对多关系) 现在,我想再创建两个表review(id、rating、date)和Posts(id、thumbid、articleid、reviewid)。 评论是关于一部动画和/或喜剧电视剧的,反之亦然,但评论的属性可能在多个表中。一个帖子也一样 这是单独表中一对一关系的典型示例,还是向现有表中添加更多属性更有效? 那么更多的表
谢谢,我希望我的问题不是那么愚蠢,但我有点困惑。在我看来,一对一的关系最好避免外键关系。它最适合一对多的关系。我不确定您的要求是什么,但选择如下:
编辑:这两个评论表可能会提供最好的性能(除非您经常要为其中一个选择所有评论),但如果有适当的索引,性能不应该是上述任何一个的问题。那么您建议在现有表中添加评论属性吗?例如,漫画将像(id,标题,日期,评级,评论日期)和电视系列(id,标题,季节,插曲,日期,评级,评论日期)等等..是的。。!与多个表相比,它还提高了性能。你创建的表格越多,你需要写的连接就越多。我想我很好地证明了这一点。如果你同意我的答案,请投赞成票。我不知道我是否同意,因为正如我所说,我很困惑。嗯,这是一个个人项目,所以它将不断升级,在开始编程之前,我希望有更有效和可扩展的数据库,我可以创建。因为例如在评论和/或帖子或任何其他表格中,我可能会在将来添加更多属性。所以一个14-15列的表格不会太重吗?谢谢你的回答。如果是这么少的一排,那就没关系了,随便选一排吧。多张桌子也可以。没问题,迈克。。如果多个表是处理较少数据量的较小表,则可以使用这些表,而与列无关。但是如果它处理大量数据,最好避免使用它。但是如果使用单表,那么编写查询就非常简单了。想想看,让我拿起一支铅笔和一张纸,试着理解你对我的解释。谢谢你。你是说还有两列,对吗?否则就没有意义了。第二。这就像:向现有表添加更多属性选项,对吗?制作动画表格,插入评论、帖子等属性的列。这更像是多对多关系。这在这种情况下有用吗?第四。为什么要这样做?我不需要动画片和电视连续剧有直接关系,*(我想)。@fat_mike(1)是的,还有两个专栏。(2) 将有以下内容:评论漫画,评论动漫,漫画,动漫。(3) 与2相同,但也有评论(和ReviewComics、ReviewAnime仅具有链接评论和漫画/动画表的字段)。(4) 允许您将评论指向电视剧和漫画,动画也指向那里,这样您就不必担心直接链接评论和漫画/动画(因此在评论、漫画和动画中有电视剧FKs)。它们都是可行的,每个都有一些小的优点和缺点。@fat_mike如果你计划有多达15种不同的东西可以回顾(正如你在评论中提到的),我肯定会从我的答案中提出建议。它可能是解决方案中速度最慢的,但它是最干净的(没有空数据,也只有很少的表),而且通过适当的索引,性能的影响其实不需要太多担心。但是,如果所有字段都是相同的,则可以使用基本表并向基本表添加一个类型字段,表示动画/漫画(As(5)(已添加)).5选项似乎是最好的,因为字段几乎相同,但许多版本在漫画/动画中都有相同的标题,因此类型字段必须有多个条目,并用逗号分隔,这通常是不正确的。它是?