如何为可以与自身具有一对多关系的实体构建表?具体来说,我正在开发一个跟踪动物繁殖的应用程序。每只动物都有一个ID;它还有一个父亲身份证和一个女士身份证。因此,从父系或母系到其后代,有可能是一对多的。我会倾向于这样的事情:
ID INT NOT NULL PRIMARY KEY
SIRE_ID INT
DAME_ID INT
并将购买并添加到种畜的那些动物记录为空值,并在表格中记录其余的ID。
所以:
- 有人可以指出我讨论建模这种关系的文章/网页吗?
- ID 应该是 INT 还是某种字符串?INT 中的 NULL 表示该动物在数据库中没有父母,但可以使用具有特殊标志值的字符串来表示相同的事情。
这可能最好通过两个表建模吗?我的意思是一张动物表和一张单独的表,仅表明亲属关系,例如:
动物
ID INT NOT NULL 主键
亲属关系
ID INT NOT NULL PRIMARY KEY FOREIGN KEY
SIRE_ID INT 主键 外键
DAME_ID INT 主键 外键
我为上述道歉:我的 SQL 生锈了。我希望它能表达我的想法。