我在应用程序中有以下场景。
一个实体称为 Structure ,另一个称为 Customer ,另一个称为 Organization 。所有这些实体都有可选的 0->N 电话,所以,我创建了 4 个表
Structure
ID_STRUCTURE (PK)
NAME VARCHAR
Customer
ID_CUSTOMER (PK)
RGI VARCHAR
Organization
ID_ORGANIZATION (PK)
ALIAS VARCHAR
Telephone
ID_TELEPHONE
NUMBER
ID_STRUCTURE (FK)
ID_CUSTOMER (FK)
ID_ORGANIZATION (FK)
三个外键中的一个总是有一个值,另外两个总是用 null 填充。
注册示例:
ID_TELEPHONE NUMBER ID_STRUCTURE ID_COSTUMER ID_ORGANIZATION
1 1234 1 null null
2 4322 null 1 null
3 4333 null null 2
4 4233 null null 2
我的 DBA 说这是一种错误的方法(并且它没有被规范化)并建议 N:N 表来避免这种可空值 fk 。但是业务规则不允许 N:N 建议。但是这个讨论是关于规范化的。
我错了,这种方法没有标准化?或者它是正确的并且没有概念问题?