【发布时间】:2016-03-01 06:54:42
【问题描述】:
我有一个包含表的数据库:clients (client_id) 和 companies (company_id)。 p>
客户和公司都可以有地址 (address_id),存储在地址表中。
最好的做法是:
-
有 2 个额外的表格链接到公司和地址:
clients(client_id) client_addresses(client_id, address_id) companies(company_id) company_addresses(company_id, address_id) addresses (address_id) -
有一个表 entities,其中有一个主键 entity_id 用于链接所有 3 个表:
entities(entity_id) clients(client_id, entity_id) companies(company_id, entity_id) addresses (address_id, entity_id)
【问题讨论】:
-
根据大多数 ERP 系统,它们只有一个名为 GlobalAaddressBook 之类的表,其中包含由party id 和 table ref 区分的所有地址。
标签: sql database join database-design referential-integrity