2010-12-01 14 views
2

phpと一緒に使用されるリレーショナルmysqlデータベースを作成する同僚のグループの中で働いています。MySQL/PHPデータベースの正規化

データベースを正規化しようとしており、意見が異なります。グループの2つのテーブルを正規化して作成するときに、新しいテーブルの一意の識別子が新しいPKになるため、既存のテーブルに外部キーが残っていることをお勧めします。

グループの残りの部分は、これが他の方法で実装されるべきであると感じられている、すなわち主キーが残っていると感じています。

関係が存在する限り、その仕事をするか、それともどちらかの方法が正しいかどうかは同じですか?事前に

おかげ

ゲイリー

+0

が、これはより良いprogrammers.stackexchangeに求められることでしょう。 – helloandre

+1

例を示してください。どの表がどのテーブルを参照すべきかは、あなたの説明からは分かりません。 – cdhowie

答えて

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) 

+0

ご回答いただきありがとうございます。私たちは、試験や改訂試験などを組み込んだオンライン授業システムを作成しようとしています。私たちは、現在のerd/normalizationに基づいてかなり複雑になり始めています。 – Gary

+1

あなたが正規化し、それを正規化しなければならないと考える方法を記述し、あなたの選択についてコメントすることができるようにしようとしています。 –

関連する問題