我在创建3NF规范化数据库时遇到问题。有人可以帮忙吗?我看不到任何依赖。这是一个房地产网站。表格字段如下:
ID - Type - Loc - Village - Purpose - Price Range - Picture 1 - Picture 2 - Picture 3 - Status - Properties - Description
感谢任何帮助。
答案 0 :(得分:0)
如果type是对另一个表的引用,则没关系,否则你必须将这些类型放在另一个表中。您还可以为图片创建表格。如果你想了解更多关于村庄的信息,村庄可以进入另一张桌子。
答案 1 :(得分:0)
通常你会有这样的表:
PropertyType
Village
Purpose
Status
Property
并且特定村庄可能有许多房产。目的和PropertyType可能是相关的 - 例如,您不能将小屋用作大型观众的聚集地,尽管您可以将小屋用作“单户住宅”或“住宿加早餐”。要表示此依赖关系,您需要此中间表:
PropertyTypePurposes
propertytypeid
purposeid
对于每种属性类型,您将具有一个或多个潜在目的。然后,在Properties表中,您不会直接引用Purposes,但会引用PropertyTypePurposes:
alter table properties
add constraint FK_PROPERTIES_PROPERTYTYPEPURPOSES
foreign key (propertytypeid, purposeid) references PropertyTypePurposes(propertypeid, purposeid)
答案 2 :(得分:0)
要进入3NF,您需要确保的是您没有任何传递功能依赖性(并且您没有任何非完全依赖性)。如果ID确定一个元组,并且没有其他属性可以用于确定某个其他属性的值必须是什么,那么您不仅在3NF中,而且在BCNF中。