2010-12-01 93 views
2

林之中一组的同学创建关系MySQL数据库的工作,结合PHP使用。的MySQL/PHP数据库规范化

我们正试图将数据库规范化和意见都不同。当正常化和创建组的新表中的两个,包括我自己感觉最好的做法是在现有的表中留下的外键的后面作为新表中的唯一标识符将成为新的PK。

该小组的其余成员已被教导/认为这应该以其他方式实施,即主键被留下。

难道这样的情况,只要有关系存在时,它会做的工作,或者是它的一种方法是比其他正确的情况下。

在此先感谢

加里

+0

这将更好地问道programmers.stackexchange因为这是一个观点的问题。 – helloandre 2010-12-01 22:38:59

+1

请举个例子。从你的描述中不清楚哪张表应该引用哪个。 – cdhowie 2010-12-01 22:40:20

回答

1

这取决于你在做什么。当您要删除的部分依赖,则规则是:

 
    r = (A, B, C, D) 
    where 
     A and B makes a composite primary key and 
     C is dependent on A 
    then 
     r1 = (A, C) 
     r2 = (A, B, D) 

如果要删除一个传递依赖,则:

 
    r = (A, B, C) 
    where A is the primary key and C is dependent on B then 

    r1 = (A, B) 
    r2 = (B, C)