Question

Je fais une analyse FK de nos tableaux en effectuant un graphique représentant les dépendances FK puis traversant la graphique. Dans mon code, je nomme tout en utilisant un graphe orienté terminologie, mais j'aimerais avoir quelque chose d'un peu plus "convivial" " dans le rapport.

Dans ce scénario:

create table t1(a varchar2(20));
alter table t1 add constraint t1_fk foreign key(a) references t2(b);

t1.a doit exister dans t2.b. Alors, quels mots devrais-je utiliser dans les blancs?

t1 is the _______ of t2.
t2 is the _______ of t1.

Beaucoup de TIA!

Était-ce utile?

La solution

Je dirais (les éléments entre parenthèses sont facultatifs, mais je les utiliserais)

[Column a of] table t1 references [column b of] table t2

et

[Column b of] table t2 is referenced by [column a of] table t1

?

Je spécifierais également l'action qui se produit lors de la suppression / mise à jour, le cas échéant.

Column b of table t2 is referenced by column a of table t1. 
Deleting a record in table t2 will delete matching records on table t1

Autres conseils

t1 is the parent of t2.
t2 is the child of t1.

Quel est le public cible? Si ce sont des personnes qui comprennent un schéma relationnel, alors ce sera probablement le cas. S'il s'agit de personnes non techniques, j'ai généralement décrit dans mon outil de modélisation (ERWin) la signification des relations spécifiquement.

InvoiceLineItem is a part of Invoice.
Invoice has one or more InvoiceLineItems.

Ou:

User must belong to a Business.
Business has zero or more Users.

Je dirais quelque chose dans le sens de

t1 is the master of t2. An ID must be in t1, before it can be mentioned in t2.
t2 is the slave of t1. It cannot refer to an ID that does not exist in t1.

La plupart des personnes non techniques comprendront la terminologie maître / esclave de manière très intuitive.

Vous pouvez adopter la forme de phrase suivante:

  • Chaque ligne t1 doit être liée à exactement une ligne t2
  • Chaque ligne t2 peut être liée à un nombre quelconque de lignes t1 ou à aucune

Dans le scénario expliqué, je pense que la dénomination correcte devrait être (techniquement parlant):
t2 est le parent de t1
t1 est l'enfant de t2

La table de la colonne contrainte s'appelle enfant , tandis que la table de la colonne référencée s'appelle parent .

Personnellement, je n'aime pas cette dénomination, dans SQL SERVER lorsque vous interrogez la vue sys.foreign_keys , la table enfant est appelée parent_object_id , tandis que la table référencée est appelée < code> id_objet_référencé .. du point de vue de la contrainte elle-même, pourrait être juste .. mais à la fin c'est très déroutant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top