一对一与多对多与重复条目

Posted

技术标签:

【中文标题】一对一与多对多与重复条目【英文标题】:One-to-one vs Many-to-many with duplicate entries 【发布时间】:2022-01-19 10:24:02 【问题描述】:

假设我有一个包含重复条目的非常简单的表。 AB 列之间的关系是一对一还是多对多

A B C
1 2 x
1 2 y

无疑是一个简单的问题,但我找不到这个极端案例的确认...提前致谢!

编辑:更改了表格的内容以避免坚持数学定义。

【问题讨论】:

一对多关系。 我不明白为什么...大陆和国家列的状态不是对称的? 请注意,有些国家分布在几个大洲,例如土耳其和俄罗斯。 如果我将列的名称更改为“A”、“B”和“C”会怎样? 如果 a、b、c 在 1 个表中,则没有关系。关系是在表之间。 【参考方案1】:

正如我在评论中所说,这是一个 一对多 关系。为了澄清起见,让我们看一下这个例子(我将您的表格标准化为以下表格):

假设您有一个标题为continent 的表,如下所示:

id    title  
---|--------  
1  | Asia
2  | Europe
3  | America

现在我们有了另一个名为 country 的表,如下所示:

id    title     continent_Id 
---|----------|--------------  
1  | Norway   |   2
2  | Germany  |   2
3  | Canada   |   3
4  | Japan    |   1 

另外,我们有一个具有这种结构的状态表:

id  stateTitle     country_Id 
---|----------|--------------  
1  | Munich   |   2
2  | Berlin   |   2
3  | Torento  |   3
4  | Tokio    |   4
5  | Osaka    |   4 

【讨论】:

以上是关于一对一与多对多与重复条目的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate中的一对多与多对一映射

Hibernate的集合一对多与多对一

hibernate关联总结

hibernate笔记

Hibernate框架--对象的状态,缓存, 映射

10.关联关系查询