use*_*249 6 database relational-database
我刚刚开始学习数据库,我很困惑使用一对多与多对多的关系.
所以我想出了一个关于顾客和食物之间关系的简单例子.客户订购食物.

1)如果我使用一对多关系,我会说客户可以订购许多食物.

基于上图,
1)bob orders noodles and rice
2)jane orders noodles and crab
Run Code Online (Sandbox Code Playgroud)
1)如果我使用多对多关系,我会说许多客户可以订购许多食物.

1)bob orders noodles and rice
2)jane orders noodles and crab
Run Code Online (Sandbox Code Playgroud)
我一直认为它是同样的事情.
bob still orders noodles and rice
and
jane still orders noodles and crab
Run Code Online (Sandbox Code Playgroud)
无论我是使用一对多,还是多对多关系.如果我错了,请纠正我.
Tho*_*mar 13
食物样本确实适用于一对多的关系:一个顾客可以订购许多菜肴.
书籍样本更好地描述了多对多关系:
作者可以写很多书(这是一对多的关系).但他也可以让合着者参与其中 - 一本书可以有很多作者.
小智 5
一对多的关系图可能会产生误导,因为面条会出现两次,而您应该只有一条记录(就像您在多对多图中一样).
您的例子是多对多关系:客户可以订购许多食品,许多客户可以订购相同的食品.
如果您将其建模为一对多关系,则要么说客户只能订购一件商品,或者该商品只能由一位客户订购.
不要将参与与基数混淆:术语"一对多"表示关系"一"侧的实体事件(单个记录,例如面条)只能出现一次,而实体出现(例如鲍勃)在"很多"方面可能会发生很多次.
面条 - 连锁餐厅场景中一对多关系的一个例子:一个员工为一个分支机构工作(只有一个分支机构),而同一个分支机构将有许多员工在那里工作.