Quelqu'un peut-il expliquer comment implémenter des relations un-à-un, un-à-plusieurs et plusieurs-à-plusieurs lors de la conception de tableaux avec quelques exemples?
sql
oracle
database-design
arsenal
la source
la source
Réponses:
Un à un: utilisez une clé étrangère pour la table référencée:
Vous devez également placer une contrainte unique sur la colonne de clé étrangère (
addess.student_id
) pour empêcher que plusieurs lignes de la table enfant (address
) ne soient liées à la même ligne de la table référencée (student
).Un-à-plusieurs : utilisez une clé étrangère du côté plusieurs de la relation qui renvoie au côté "un":
Plusieurs à plusieurs : utilisez une table de jonction ( exemple ):
Exemples de requêtes:
la source
student
donnéaddress
.student_classes
ligne ne doit avoir qu'une seule relation un à un. SistudentA
est dansclassA
etclassB
, alors il devrait y avoir deux lignesstudent_classes
, une pour quelle relation.Voici quelques exemples concrets des types de relations:
Un à un (1: 1)
Une relation est biunivoque si et seulement si un enregistrement du tableau A est lié à un maximum d'un enregistrement dans le tableau B.
Pour établir une relation un-à-un, la clé primaire de la table B (sans enregistrement orphelin) doit être la clé secondaire de la table A (avec enregistrements orphelins).
Par exemple:
Un à plusieurs (1: M)
Une relation est un-à-plusieurs si et seulement si un enregistrement du tableau A est lié à un ou plusieurs enregistrements du tableau B. Cependant, un enregistrement du tableau B ne peut pas être lié à plusieurs enregistrements du tableau A.
Pour établir une relation un-à-plusieurs, la clé primaire de la table A (la table "un") doit être la clé secondaire de la table B (la table "plusieurs").
Par exemple:
Plusieurs-à-plusieurs (M: M)
Une relation est plusieurs-à-plusieurs si et seulement si un enregistrement de la table A est lié à un ou plusieurs enregistrements de la table B et vice versa.
Pour établir une relation plusieurs-à-plusieurs, créez une troisième table appelée "ClassStudentRelation" qui aura les clés primaires de la table A et de la table B.
la source
Un à plusieurs
La relation de table un-à-plusieurs se présente comme suit:
Dans un système de base de données relationnelle, une relation de table un-à-plusieurs relie deux tables en fonction d'une
Foreign Key
colonne dans l'enfant qui fait référence à la lignePrimary Key
de la table parent.Dans le diagramme de tableau ci-dessus, la
post_id
colonne dupost_comment
tableau a uneForeign Key
relation avec la colonnepost
id de la tablePrimary Key
:Un par un
La relation de table un-à-un se présente comme suit:
Dans un système de base de données relationnelle, une relation de table un-à-un relie deux tables en fonction d'une
Primary Key
colonne dans l'enfant qui fait égalementForeign Key
référence à la lignePrimary Key
de la table parent.Par conséquent, nous pouvons dire que la table enfant partage la
Primary Key
avec la table parent.Dans le diagramme de tableau ci-dessus, la
id
colonne dupost_details
tableau a également uneForeign Key
relation avec la colonne dupost
tableauid
Primary Key
:Plusieurs à plusieurs
La relation table plusieurs à plusieurs se présente comme suit:
Dans un système de base de données relationnelle, une relation table plusieurs-à-plusieurs relie deux tables parent via une table enfant qui contient deux
Foreign Key
colonnes référençant lesPrimary Key
colonnes des deux tables parent.Dans le diagramme de tableau ci-dessus, la
post_id
colonne dupost_tag
tableau a également uneForeign Key
relation avec la colonnepost
id de la tablePrimary Key
:Et, la
tag_id
colonne de lapost_tag
table a uneForeign Key
relation avec la colonnetag
id de la tablePrimary Key
:la source
Relation un à un (1-1): Il s'agit de la relation entre la clé primaire et la clé étrangère (la clé primaire relative à la clé étrangère un seul enregistrement). c'est une relation un à un.
Relation un à plusieurs (1-M): Il s'agit également d'une relation entre les relations de clés primaires et étrangères, mais ici, la clé primaire se rapporte à plusieurs enregistrements (par exemple, le tableau A contient des informations sur le livre et le tableau B a plusieurs éditeurs d'un livre).
Plusieurs à plusieurs (MM): plusieurs à plusieurs comprennent deux dimensions, expliquées en détail ci-dessous avec l'exemple.
la source