我的数据库技能有点生疏,所以学习 Hibernate 对我来说有点困难。
我一直在阅读一对一,一对多和多对多,简而言之,这是我年轻时所理解的:
一对一: - 表 A 链接到表 B 中的另一行,表 A 中的行数必须等于表 B 中的行数。
一对多: - 每个公司可以有很多员工。
多对多: - 许多医生可以拥有/共享不同的患者。(没有双关语)。
假设我有以下表格,用于承办商客户模型
表人:
[ id[pk],fullname(char),age(int),address(char),sendFlowers(boolean),country_id[fk],whenDead_id[fk]]
1, 'Martin Jensen', 91, 'Notlucky Street 4', false, 2, 1
2,“Killer Klaus”,67,“Die-Hard Strasse 9”,真实,1, 2
2, 'Bingo Man', 46, '秘密地址', true, 1, 2
表:国家
[id[pk],名称(字符)]
1、“德国”
2、“朝鲜”
表:何时死亡
[ id[pk],actionToTake(char) ]
1, '忽略/不可能拾取'
2、‘火葬/模仿亲人,代收保险’
在正常情况下,如果我需要这些表中的一些信息,我会使用普通 SQL 对两个外键进行连接。(fx 描述,而不仅仅是 id)。每个人只能连接一个国家和一个WhenDead表,但是多个人当然应该能够引用相同的外键值,以避免重复。
我尝试在 Hibernate 中使用 @OneToOne 注释,将这两个表的列名作为实体上的外键 id。它有效,但是,它似乎与 OneToOne 所代表的背道而驰……“表中的每一行在另一个表中都有相应的行”和“行数必须在两个表中匹配”。
使用一对多或多对多似乎不自然。
有人能把我推向正确的方向吗,还是我应该继续使用 OneToOne,每个印度休眠教程都说“除非你有很大的设计缺陷,否则永远不会使用”