Quel nom dois-je donner à une table qui établit une correspondance entre deux tables? [fermé]

disons que j'ai deux tables:

Table: Color
Columns: Id, ColorName, ColorCode

Table: Shape
Columns: Id, ShapeName, VertexList

Comment dois-je appeler la table qui établit une correspondance couleur-forme?

Table: ???
Columns: ColorId, ShapeId
106
demandé sur OMG Ponies 2009-11-28 21:36:25

24 réponses

il n'y a que deux choses dures Informatique: invalidation de cache et nommer des choses

-- Phil Karlton

trouver un bon nom pour une table qui représente une relation many-to-many rend la relation plus facile à lire et à comprendre. Parfois trouver un grand nom n'est pas anodin, mais cela vaut la peine de passer du temps à y réfléchir.

exemple: Reader et Newspaper .

A Newspaper a beaucoup de Readers et un Reader a beaucoup de Newspapers

vous pourriez appeler la relation NewspaperReader mais un nom comme Subscription pourrait transmettre mieux ce que la table est au sujet.

le nom Subscription est aussi plus idiomatique dans le cas où vous voulez mapper la table à des objets plus tard.

La convention pour nommer many-to-many tables est une concaténation des noms des deux tables qui sont impliquées dans la relation. ColourShape serait un défaut raisonnable dans votre cas. Cela dit, je pense que Nick D est venu avec deux grandes suggestions: Style et Texture .

148
répondu tosh 2017-05-23 10:31:16

Comment parler de ColorShapeMap ou Style ou "151910920 de la" Texture .

29
répondu Nick Dandoulakis 2009-11-28 18:50:29

Nommez la table ce que vous voulez, à condition qu'elle soit informative:

COLOR_SHAPE_XREF

du point de vue du modèle, la table est appelée jointure/corrollary/cross reference table. J'ai gardé l'habitude d'utiliser _XREF à la fin pour faire de la relation évident.

17
répondu OMG Ponies 2009-11-28 18:42:14

Intéressant, environ la moitié des réponses donner un terme général pour tout tableau qui implémente plusieurs-à-plusieurs relations, et l'autre moitié des réponses suggérer un nom pour cette table spécifique.

j'ai appelé ces tableaux intersections "tables 1519110920" en général.

En termes de conventions de nommage, la plupart des gens donnent un nom qui est un amalgame des deux tables dans la plusieurs-à-plusieurs relations. Donc dans ce cas, " ColorShape " ou " ShapeColor ."Mais je trouve cela artificiel et embarrassant.

Joe Celko recommande dans son livre "SQL Programming Style" de nommer ces tables dans un langage naturel. Par exemple, si une forme est colorée par une couleur, alors nommer la table ColoredBy . Alors vous pourriez avoir un diagramme qui se lit plus ou moins naturellement comme ceci:

Shape <-- ColoredBy --> Color

à L'inverse, on pourrait dire une couleur, des couleurs, une forme:

Color <-- Colors --> Shape

mais cela ressemble à la table du milieu est la même chose que Color avec une convention d'appellation plurielle. Trop de confusion.

est probablement le plus clair pour utiliser la convention d'appellation ColoredBy . Intéressant que l'utilisation de la voix passive rend la convention de nommage plus claire.

17
répondu Bill Karwin 2009-11-28 19:11:30

il s'agit d'une entité Associative et est assez souvent significative en soi.

par exemple, un rapport de plusieurs à plusieurs entre les TRAINS et les heures donne lieu à un horaire.

s'il n'y a pas de nouvelle entité évidente (telle que timetable) alors la convention doit exécuter les deux mots ensemble, en donnant COLOUR_SHAPE ou similaire.

6
répondu Ed Guiness 2009-11-28 18:50:16

j'entends habituellement ce qu'on appelle une table de jonction. Je nomme la table par ce qu'elle joint, donc dans votre cas soit ColorShape, ou ShapeColor. Je pense que c'est plus logique pour une Forme d'avoir une couleur que pour une Couleur à avoir une forme, donc je voudrais aller avec ShapeColor .

4
répondu Bill the Lizard 2009-11-28 18:39:58

j'ai travaillé avec des AD qui l'appellent un joindre la table .

Colour_Shape est assez typique-à moins que la relation ait un nom spécifique de domaine explicite.

4
répondu daf 2009-11-28 19:20:21

une table de correspondance est ce que l'on appelle habituellement.

ColorToShape
ColorToShapeMap
3
répondu 2009-11-28 18:37:29

tableau Intermédiaire ou un joindre le tableau

Je l'appellerais "ColorShapes" ou "ColorShape", selon votre préférence

3
répondu Neil N 2009-11-28 18:38:10

Junction table

ou Bridge Table

ou Join Table

ou Map Table

ou Link Table

ou Cross-Reference Table

Ceci est utilisé quand nous allons pour beaucoup-à-plusieurs relations où les touches des deux tables forment la touche primaire composite de la table de jonction.

3
répondu priyanka.sarkar 2009-11-29 04:15:15

j'ai aussi entendu le terme Associatif table utilisée.

un nom pour votre table pourrait être ColorShapeAssociations ce qui signifie que chaque ligne représente une association entre cette couleur et cette forme. L'existence d'une rangée implique que la couleur vient dans cette forme, et que la forme vient dans cette couleur. Toutes les lignes avec une couleur spécifique serait l'ensemble de toutes les formes, la couleur est associé, et les lignes pour une forme spécifique serait l'ensemble de toutes les couleurs que la forme d'origine...

2
répondu Charles Bretana 2009-11-29 17:09:38

en général, la plupart des bases de données ont une sorte de convention de nommage pour les index, la clé primaire et ainsi de suite. Dans PostgreSQL le nom suivant a été suggéré:

  • clé primaire: tablename_columnname_ pkey
  • unique contrainte: tablename_columnname_ clé
  • contrainte exclusive: tablename_columnname_ excl
  • index for other purposes: tablename_columname_ idx
  • clé étrangère: tablename_columnname_ fkey
  • séquence: tablename_columnname_ seq
  • déclencheurs: tablename_actionname_after / before_ trig 151960920"

Votre table est une table liée à moi. Pour rester en ligne avec le nom ci-dessus je choisirais le

  • table liée: tablename1_tablename2_ lnk

dans une liste d'objets table la table liée sera après tablename1. Cela peut être visuellement plus attrayant. Mais vous pouvez également choisir un nom qui décrit le but de ce lien, comme d'autres l'ont suggéré. Cela pourrait aider à garder le nom de la colonne id court (si votre lien doit avoir son propre id nommé et est référencé dans d'autres tables).

  • or liked table: purpename_ lnk
2
répondu Frankenstein 2014-07-24 10:21:13

je recommande d'utiliser une combinaison des noms des entités et de les mettre au pluriel. Ainsi, le nom de la table express connexion "plusieurs à plusieurs".

dans votre cas:

Couleur + Forme =ColorsShapes

2
répondu Palindromer 2017-02-16 16:10:47

j'ai toujours eu un faible pour le terme "Hamburger Table". Je ne sais pas pourquoi - ça sonne bien.

Oh, et j'appellerais la table ShapeColor ou ColorShape en fonction de ce qui est la table la plus couramment utilisée.

1
répondu rein 2009-11-28 18:45:17

table" Many-Many". Je l'appellerais "ColourShape" ou vice versa.

1
répondu gbn 2009-11-28 19:31:44

il est difficile de répondre à quelque chose d'aussi arbitraire, mais j'ai tendance à préférer l'idée de tosh de le nommer d'après quelque chose dans le domaine réel au lieu d'une quelconque description générique des relations sous-jacentes.

très souvent ce genre de table évoluera en quelque chose de plus riche pour le modèle de domaine et prendra des attributs supplémentaires au-delà et au-delà des clés étrangères liées.

par exemple, que faire si vous avez besoin de stocker une texture plus de couleur? Il pourrait sembler un peu funky d'étendre la table SHAPE_COLOR pour tenir sa texture.

d'un autre côté, il y a aussi quelque chose à dire pour prendre une décision bien informée basée sur les exigences que vous avez aujourd'hui et être prêt à remanier lorsque des exigences supplémentaires sont introduites plus tard.

tout cela dit, Je l'appellerais SURFACE si je savais qu'il y aurait des propriétés de surface supplémentaires introduites plus tard. Sinon, je n'aurais aucun problème à l'appeler SHAPE_COLOR ou quelque chose du genre et passer à des problèmes de conception plus pressants.

1
répondu Joe Holloway 2009-11-28 21:06:11

peut-être juste ColoredShape ?

Je ne suis pas sûr de comprendre la question. S'agit-il de ce cas précis ou cherchez-vous des lignes directrices générales?

1
répondu mafu 2009-12-16 11:12:44

je le nommerais avec les noms exacts des tables étant jointes = ColorShape.

0
répondu DOK 2009-11-28 18:40:46

Dans adiction à ce que les Développeurs de l'Art a liés à,

ColorShape

serait une convention d'appellation habituelle. Dans le diagramme des urgences, ce serait une relation.

0
répondu j.a.estevan 2009-11-28 18:40:46

appelez ça une table de référence.

XREF_COLOR_SHAPE
(
     XCS_ID INTEGER
     C_ID   INTEGER
     S_ID   INTEGER
)
0
répondu EvilTeach 2009-11-28 19:20:12

j'utiliserais r_shape_colors ou r_shape_color selon son sens.

r_ remplacerait xref_ dans ce cas.

0
répondu Marius Burz 2009-11-30 15:06:12

mon vote est pour un nom qui décrit le mieux la table. Dans ce cas, il pourrait être ShapeColor , mais dans de nombreux cas, un nom différent d'une concaténation, c'est mieux. J'aime la lisibilité et pour moi , ce qui signifie pas de suffixes, pas de traits de soulignement et pas de préfixes.

0
répondu magnus 2009-11-30 15:45:24

j'opterais personnellement pour Colour_Shape, avec le underscore: juste parce que j'ai vu cette convention apparaître pas mal. [mais d'accord avec les autres Billets ici qu'il y a probablement des façons plus "poétiques" de le faire].

garder à l'esprit que les clefs étrangères devraient également être construites sur cette table de jointure qui ferait référence à la fois les couleurs et les formes des tables qui aideraient également à identifier la relation.

0
répondu monojohnny 2009-11-30 16:07:47

une convention que je vois beaucoup pour joindre des tables que j'aime personnellement est 'Colour_v_Shape', que j'ai entendu les gens se réfèrent familièrement comme 'versus tables'.

il est très clair à un coup d'oeil que le tableau représente une relation de plusieurs à plusieurs, et aide à éviter que (bien que rare) situation confuse lorsque vous essayez de concaténer deux mots qui pourraient autrement former un mot composé, par exemple "beurre" et "lait" peut devenir "babeurre", mais que faire si vous aussi nécessaires pour représenter une entité appelée "Babeurre'?

en le faisant de cette façon, vous auriez "Butter_v_Milk" et "Buttermilk" - pas de confusion.

aussi, j'aime à penser qu'il y a une référence Foo Fighters dans la question originale.

0
répondu Breeno 2016-04-10 11:39:15