我有一个Entity表,它有两个子表Person和Organization。这就是说实体可以是个人或组织。而且'实体'本身可以有多种角色。
角色表。 3栏:
RoleID - int identity (PK)
Name - varchar
Desc - Varchar
实体表。 1栏:
EntityId - int identity (PK)
EntityRole表。 2列(一个人可以有多个角色)
EntityId - int
RoleId - int
(Composite primary key)
PersonEntity
PersonEntityId - identity - primarykey
EntityID - ForeignKey to Entity.EntityId
FName, LName - varchar
OrgEntity
OrgEntityId - identity - primarykey
EntityID - ForeignKey to Entity.EntityId
OrgName - varchar
我的问题是,只有EntityId在该表中的一列是一个糟糕的设计?此人和组织没有共享的属性。它们有地址,但是person和org都可以有多个地址,因此address是一个单独的表,实体和地址之间有(0到多个)。