它是多对多还是多对一?

时间:2013-12-28 18:20:38

标签: sql many-to-many one-to-many

表格为:contracts {id, user_id, unit_id}users {id}
用户可以拥有多个合同,但是每个合同只能有一个用户。

所以,问题是:多对多与表格本身有关(意思是:许多用户有很多合同 所以它是多对的许多) 下,
还是记录? (意思是:每个合约只能有一个用户 所以它是一对多的)


编辑:

一些澄清 -

合同

user_id      |     unit_id     |      id
- - - - - - - - - - - - - - - - - - - - - - - - - 
    455      |       455       |      1          
    455      |       115       |      1          
    344      |       225       |      1          
    222      |       455       |      1          

请再次注意:每个用户记录可以有很多合同,而且每个合同记录可以有一个用户,但在表范围内:它们都可以有很多其他用户。

3 个答案:

答案 0 :(得分:3)

用您自己的话说,一个用户与多个联系人。

“多对多”意味着两种方式都存在一对多关系(用户可以拥有多个联系人,联系人可以拥有多个用户),而不仅仅是两个表中都有很多记录。多对多关系涉及大多数RDBM中的联结表。

答案 1 :(得分:1)

用户联系人之间的关系是一对多关系。也就是说,一个用户有很多联系人。

这不需要关联表。您可以将userid放在contacts表中。

许多关系的一个例子是项目和订单。物品有很多订单。订单可以有很多项目。在这种情况下,您需要一个关联表来正确表示关系数据库中的关系。

答案 2 :(得分:0)

这似乎是一对多,一个用户可以拥有多个联系人

相关问题