我在应用程序中有以下情况。多个外键
称为结构的实体,另一个称为客户,另一个称为组织。所有这些实体具有可选0->ñ电话,所以,我创建了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)
一次为期夷键总是有一个值,另外两个总是充满了空。
寄存器例如:
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说,这是一种错误的做法(这不是归一化)和sugest N:N表来避免这种nullables FK。但业务规则不允许N:N建议。但是这是关于正常化的讨论。
我错了,这种方法没有正常化?或者这是正确的,没有任何问题?
当您有2个客户使用同一个电话时会发生什么? –
号码是唯一的,不会在整个表格中重复。 – jlemes