我学习Merise或UML时,如果我们有多对多关系的表,我们必须在关系模型(在Mysql中)中创建一个新表,并且此表将包含拖拽其他桌子的id。
但是我们真的必须创建一个新的,因为有了休眠和映射,我认为我们不需要。
因为每个表(实体)都会有另一个表(实体)的列表。
那么处理多对多关系的正确方法是什么?创建一个新表还是不?多对多关系和关系模型
0
A
回答
1
通常,您需要normalise数据库中的多对多关系(有些专家可能会在choose not to之间)。然而Spring并不是其中之一,它只是简化了的一部分。
1
您仍然需要一个“连接表”,该连接表将包含两列与其他两个表的外键。
在hibernate中,当一个实体有一个List时,你仍然需要能够将这个关系存储在表上。
因此,举例来说,如果你想要一个多到多表A和表B之间..
//TableA class:
@ManyToMany
@JoinTable(name="TABLEA_TABLEB",
joinColumns=
@JoinColumn(name="TABLEA_ID", referencedColumnName="ID"),
inverseJoinColumns=
@JoinColumn(name="TABLEB_ID", referencedColumnName="ID")
)
public Set<TableB> bees;
//TableB Class:
@ManyToMany(mappedBy="bees")
public Set<TableA> ays;
这将创建一个连接表有两列(“tablea_id”,“tableb_id”);这些列将与主实体的“ID”(主键)具有外键关系。
0
你提到UML:
在Association Class
的情况下,join table
会有“额外”的栏目,除了keys
。
相关问题
- 1. 模型关系多对多关系实体上的属性
- 2. 模型ddd上的多对多关系
- 3. 许多一对多的模型关系
- 4. 模型多对多的关系
- 5. django模型中的多对多关系
- 6. 具有多对多关系的模型
- 7. 建模多对多的一元关系和1:一元关系
- 8. 数据模型,多对多和一对多关系
- 9. IndexedDB和多对多关系
- 10. ORM和多对多关系
- 11. SolrNet和多对多关系
- 12. 关系有多对多关系
- 13. 多对多关系
- 14. 多对多关系
- 15. 多对多关系
- 16. 多对多关系
- 17. 多对多关系
- 18. 多对多关系
- 19. 多对多关系
- 20. 多对多关系
- 21. 关系功能的AR模型,多对一的关系
- 22. Django多对一模型关系
- 23. CoreData - 一对多关系 - 数据模型
- 24. Laravel:一对多,许多对一个模型一对多关系
- 25. SqlAlchemy关系多对多与其他多对多关系
- 26. 多对多关系中的关系类型
- 27. Propel ORM - 与关系类型的多对多关系
- 28. 报告模型;关于多对多关系的问题
- 29. 查看模型设计的领域模型多对多关系
- 30. Count()对多对多关系