2010-12-01 7 views
2

Je travaille au sein d'un groupe d'étudiants qui créent une base de données relationnelle mysql à utiliser conjointement avec php.Normalisation de la base de données MySQL/PHP

Nous essayons de normaliser la base de données et nous avons des opinions divergentes. Lors de la normalisation et la création d'une nouvelle table deux du groupe, moi-même inclus sentir que la meilleure pratique est de laisser la clé étrangère dans la table existante que l'identifiant unique dans la nouvelle table devient le nouveau PK.

Le reste du groupe a été enseigné/pense que ceci devrait être mis en œuvre dans l'autre sens, c'est-à-dire que la clé primaire est laissée derrière.

Pourrait-il être le cas tant qu'une relation est présente, il fera le travail, ou est-ce le cas une méthode est correcte sur l'autre.

Merci à l'avance

Gary

+0

ce serait mieux demandé à programmers.stackexchange car cela est une question d'opinion. – helloandre

+1

Veuillez présenter un exemple. Il ne ressort pas clairement de votre description quelle table doit référencer laquelle. – cdhowie

Répondre

1

Cela dépend de ce que vous faites. Lorsque vous supprimez une dépendance partielle, alors la règle est:

 
    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) 

Si vous retirez une dépendance transitive alors:

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

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

+0

Merci, pour votre réponse, nous essayons de créer un système de cours en ligne avec des examens intégrés et des tests de révision, etc. Il commence à devenir assez compliqué et a quelques soucis basés sur notre erd/normalisation – Gary

+1

Peut-être pourriez-vous poster la table que vous essayez de normaliser et de décrire comment vous pensez qu'il devrait être normalisé et de cette façon, nous pouvons commenter votre choix. –

Questions connexes