Diagramme entité-relation. Comment la relation IS A se traduit-elle en tableaux?
Je me demandais simplement, comment une administration chargée de la relation dans un diagramme ER se serait traduit par des tables dans une base de données.
Y aurait-il 3 tables? Une pour personne, l'un pour les étudiants et un pour l'Enseignant?
Ou y aurait-il 2 tables? L'un pour les étudiants et un pour l'enseignant, chaque entité ayant les attributs de la personne + leur propre?
Ou y aurait-il un tableau avec tous les 4 attributs et quelques-unes des places dans la table en cours de nulle selon qu'il s'agissait d'un élève ou de l'enseignant dans la ligne?
NOTE: j'ai oublié d'ajouter cela, mais il ya une couverture complète de l'ISA de relation, de sorte qu'une personne doit être un studen ou d'un enseignant.
source d'informationauteur Brad Thiessen
Vous devez vous connecter pour publier un commentaire.
En supposant que la relation est obligatoire (comme vous l'avez dit, une personne a d'être un étudiant ou un enseignant) et disjoints (une personne est soit un étudiant ou un enseignant, mais pas les deux), la meilleure solution est de 2 tableaux, l'un pour les élèves et pour les professeurs.
Si la participation est plutôt facultatif (ce qui n'est pas votre cas, mais disons qu'il est complet), puis les 3 tables option est le chemin à parcourir, avec une Personne(PersonID, Nom de la table), et puis les deux autres tableaux, qui fait référence à la Personne de la table, par exemple
Étudiant(PersonID, GPA), avec PersonID être PK et FK référencement Personne(PersonID).
Le tableau 1 de l'option est probablement pas la meilleure façon ici, et il produira plusieurs enregistrements avec des valeurs null (si une personne est un étudiant, l'enseignant-seuls les attributs sera nulle et vice-versa).
Si le disjointness est différente, alors c'est une autre histoire.
il y a 4 options que vous pouvez utiliser pour cette carte dans une salle d'urgence,
option 1
option 2 Puisque c'est une couverture de la relation, l'option 2 n'est pas un bon match.
option 3
type de personne peut être étudiant/enseignant
option 4
Depuis le sous-classes n'ont pas beaucoup d'attributs, les options 3 et 4 sont mieux à cette carte dans un ER
Il dépend entièrement de la nature de leurs relations.
SI la relation entre une Personne et un Élève est de 1 à N (un à plusieurs), puis la bonne manière serait de créer une relation de clé étrangère, où l'Étudiant a une clé étrangère dans la Personne de l'ID de la Colonne de Clé Primaire. Même chose pour la Personne de l'Enseignant de la relation.
Toutefois, si la relation est de M à N (plusieurs à plusieurs), vous pouvez créer un tableau contenant ces relations.
En supposant que votre disquette de réparation d'urgence utilise 1 à N les relations, votre structure de la table devrait ressembler à quelque chose comme ceci:
CREATE TABLE Personne
(
le péché de type bigint,
de texte nom,
CLÉ PRIMAIRE (nas)
);
De CRÉER la TABLE de l'Étudiant
(
AMP flotteur,
fk_sin bigint,
La CLÉ ÉTRANGÈRE (fk_sin) les RÉFÉRENCES de la Personne(le péché)
);
et suivre le même exemple pour l'Enseignant de la table. Cette approche vous obtiendrez à la 3ème Forme Normale la plupart du temps.