繁体   English   中英

为什么在多对一的双向关系中,多方始终是关系的拥有方?

[英]Why is in many to one bidirectional relation many side is always the owning side of the relationship?

文件说:

多对一双向关系的许多方面不能定义mappedBy元素。 许多方面始终是这种关系的拥有方。

你能解释一下原因吗? 是什么原因?

多数民众赞成因为在数据库中,许多方面都有外键。 例如,考虑表用户和交易与关系用户有很多交易。 在事务表中,每个事务都有一个user_id,它是用户表的外键,而不是相反。 用户表没有transaction_id。

表示“许多”侧的实体的每个(可能很多)行包含(外键)引用回到单行,该单行表示关系的“一”侧的实体作为单个数据库列。 为了使“一”侧拥有该关系,对应于“多”侧的所有行的键必须适合单个数据库表行,这是不实际的。

换句话说,如果A是“多”侧而B是“一侧”,则对于B表中的每一行,表A中可能有几行包含对它的引用。 这些B行中的每一行都可以将链接的A行的键存储在单个列中。 没有办法让那一行存储所有这些B行的密钥。

出于同样的原因,在多对多关系的情况下,除了表示实体的表之外,连接表总是最终被使用,以便将外键引用链接为单个列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM