小编Ami*_*mit的帖子

如何使用来自其他几个表的外键对表进行建模

我正在尝试创建一个包含两个主要实体的联系人应用程序 - 个人和公司.一个人可以拥有许多电子邮件,号码和地址.公司还可以拥有许多电子邮件,号码和地址.我正在尝试为这种情况确定合适的设计.

选项#1 - 多个外键
电子邮件,号码和地址将有两列名为person_id和company_id.根据数据所属的实体,一个将为null,另一个将包含一个链接回父级的id.

选项#2 - 每个实体每个类型一个表
我复制每个表,因此会有一个company_addresses表和一个person_addresses表.我会有两倍的表,但这是现在最有意义的解决方案.

选项#3 - 一个链接表
我创建了一个表 - "链接".该表将包含四列:source_id,source_entity,dest_id,dest_entity.因此,如果公司获得一个新号码,您将拥有如下行:1,number,2,company.

选项#4 - 多个链接表
我为每种类型的链接创建一个表(company_address,person_address,company_email,person_email等)

你会选择哪个选项?

database-design data-modeling

5
推荐指数
1
解决办法
1658
查看次数

标签 统计

data-modeling ×1

database-design ×1