我想在对象"Human"和它的父项same type之间建立多对多关系,我想知道这种关系是否存在于真实的项目中,或者有经验的开发人员是如何处理这样的需求的? 完成这项任务的最佳设计是什么? 谢谢!
我想在对象"Human"和它的父项same type之间建立多对多关系,我想知道这种关系是否存在于真实的项目中,或者有经验的开发人员是如何处理这样的需求的? 完成这项任务的最佳设计是什么? 谢谢!
在关系数据库中,通常多对多关系需要第二个表.
例如:
CREATE TABLE Parentage (
child_id INT NOT NULL,
parent_id INT NOT NULL,
PRIMARY KEY (child_id, parent_id),
FOREIGN KEY (child_id) REFERENCES Human (id),
FOREIGN KEY (parent_id) REFERENCES Human (id)
);
这是存储数据的relational种方式,它的优点是导致最少的数据冗余,并以合理的效率支持各种查询.
它还支持一个真正的多对多的关系,其中一个子元素可以有多个父母(可能只有两个亲生父母,但有继父母、监护人和寄养人等,可以有无限数量的人算作父母),以及每个父母都有多个子元素.
如果要优化specific查询的表设计,这是可能的.最佳设计取决于您需要优化的查询,但您还没有描述需要运行的任何特定查询.