3NF规范化数据库

时间:2011-07-23 14:47:56

标签: mysql database 3nf

我在创建3NF规范化数据库时遇到问题。有人可以帮忙吗?我看不到任何依赖。这是一个房地产网站。表格字段如下:

ID - Type - Loc - Village - Purpose - Price Range - Picture 1 - Picture 2 - Picture 3 - Status - Properties - Description

感谢任何帮助。

3 个答案:

答案 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中。