【发布时间】:2010-03-02 10:47:52
【问题描述】:
我正在为一个程序创建一个数据库,我应该在其中模拟家庭中的一些关系。 例如: X 是 Y 的父亲,Y 是 X 的儿子
所以,我有一个 Members 表,其中包含有关每个成员的所有信息,所以我考虑在 Members 表与其自身之间建立多对多关系,以便 Member_Member 桥表将列 "FK_FromID , FK_ToID" 作为复合键(正确吗?)和 "FK_RelationType" 作为外键到 RelationTypes 表,该表将具有关系类型 "Father,mother,son,daughter" ,并且从 Members 表到这两个外键的两个关系是一对多的
我的问题是:删除时如果我选择级联,那么我会产生循环,因为如果我删除一个成员,那么 Member_Member 中的相关记录会有两次删除传递桥,知道在程序中每当我插入父亲关系时,我都会在 Member_Member 表中插入儿子关系,有没有办法或解决方法可以启用级联,以便每当我删除成员时,我都会删除相关记录在 Member_member 中,无论记录在 to 或 from 外键列中
所以,我不知道该怎么办,这是一个正确的设计还是什么? ,我应该怎么做自行车,还有你认为对于同样的问题更好的设计应该是知道我需要指定两方之间什么样的关系
非常感谢您的帮助,抱歉英语不好 小鱼
【问题讨论】:
标签: sql database-design family-tree