sql – 为什么没有多对多的关系?

我第一次学习数据库和SQL.在我正在阅读的文本(Oracle 11g:SQL by Joan Casteel)中,它表示“关系数据库中存在多对多关系”.我明白我们要避免他们,而且我明白如何创建一个桥接实体来消除它们,但是我正在努力完全理解“不能存在”的声明.

实际上不可能有多对多的关系代表?

或者它是非常低效的,因为它导致大量的数据重复?

在我看来,这是后一种情况,桥接实体最小化了重复的数据.但也许我错过了什么?我没有找到具体的原因(或更好的例子),这解释了为什么要在文本或其他搜索的任何地方避免多对多的关系.我一整天都在搜索,只找到相同的信息重复:“不要这样做,而是使用桥接实体.”但我想问为什么. 🙂

谢谢!

想想一个简单的关系,如作者和书籍之间的关系.作者可以写很多书.一本书可能有很多作者.现在,如果没有桥台来解决多对多的关系,那么替代方案是什么呢?您必须在Books表中添加多个Author_ID列,每个作者一个.但是你添加了几个? 2? 3? 10?但是,您选择的很多,您可能会遇到许多稀疏行,其中许多Author_ID值为NULL,并且您很可能会遇到需要“再一次”的情况.那么那么你就是不断地修改这个模式来试图适应,或者你正在施加一些人为的限制(“没有书可以有超过3个作者”)来迫使事情适合.
相关文章
相关标签/搜索