所以我从这 3 个表开始,并被告知将它们修改为 BCNF 和 4NF:
PRIVATE_SESSION(培训师、电话、电子邮件、费用、ClientLastName、ClientFirstName、ClientPhone、ClientEmail、日期、时间)
CLUB_MEMBERSHIP(ClientNumber、ClientLastName、ClientFirstName、ClientPhone、ClientEmail、MembershipType、EndingDate、街道、城市、州、邮编)
CLASS(班级名称、培训师、开始日期、结束日期、费用)
*还建议使用新表来跟踪客户、订阅的课程和支付的金额,同时仍将所有内容保留在 BCNF 和 4NF
==================================================== ================
所以,我把它们变成了这 7 个表来尝试遵守 BCNF 和 4NF。问题是……这甚至是正确的吗?如果每个确定项都是候选键,则满足 BCNF 的定义,看起来就是这样。如果 4NF 不包含我相信的多值依赖项,则它是满意的……并且我尝试将表分开,这样它们就不会
培训师
ID (primary key),
TrainerLastName,
TrainerFirstName,
TrainerEmail,
TrainerPhone
TRAINER_SESSION
ID (primary key),
ID (foreign key from CLIENT_INFO.ID)
TrainingStartTime,
TrainingStartDate,
TrainingFee
CLIENT_INFO
ID (primary key),
ClientLastName,
ClientFirstName,
ClientPhone,
ClientEmail,
会员地址
ID (primary key),
ID (foreign key to CLIENT_INFO.ID),
State,
City,
Street,
Zip
会员信息
ID (primary key),
ID (foreign key to CLIENT_INFO.ID),
MembershipType,
MembershipStartDate,
MembershipEndDate
CLUB_CLASS
ID (primary key),
TrainerID (foreign key to TRAINER.ID),
ClassName,
ClassStartDate,
ClassEndDate,
ClassCost
CLASS_ENROLLMENT
(ClassID, MemberID) composite primary keys
TotalClasses,
TotalPaid