我有以下关系。一家公司有多名员工。每个员工都由其员工编号定义,ENr
并且他住在一个EAddress
带有 ZipCode的地址上ZZipCode
。带有 ZipCode 的 City 是一个自己的表,因为否则表 Employee 中存在冗余。因此ZZipCode
是 Employee 中的外键。
一个 Group 由它定义GGroupId
,因此它是主键。每个组有一个组长,可以是任何员工。因此ENr
是外键。
每个员工都可以在一个或多个组中工作。出于这个原因,该表GroupMember
存在于元组ENr
和GGroupID
定义主键并且两者都是外键的位置(我不能同时使用粗体和斜体)。
最后,产品由其产品 id 定义PId
并关联到一个组GGroupID
。
那么这里是该书面描述的关系。
Employe( ENr , EName, EGender, EAddress, ZZipCode , ESocNr, ESalery)
Group( GGroupId , GName, GCostNr, ENr ) GroupMember
( ENr , GGroupID ) #both 成员也是外键!
产品(PId,PName,PPrice,GGRoupId)
邮编(ZZipCode,ZCityName,SStateID)
状态(SStateID,SStateName)
为了澄清:粗体成员是主键,斜体成员是外键。
我试图将这种关系放入3NF
. 任何人都可以确认这是正确的吗?