130 votes

Comment dois-je nommer une table qui associe deux tables?

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 associe la couleur à la forme?

 Table: ???
Columns: ColorId, ShapeId
 

176voto

tosh Points 2647

Il y a seulement deux choses dures dans Informatique: l'invalidation du cache et de nommer les choses
-- Phil Karlton

Venir avec un bon nom pour un tableau qui représente un plusieurs-à-plusieurs relation peut aider beaucoup dans la diminution de la complexité du modèle de données. Parfois, il n'est pas facile, mais cela vaut la peine de passer du temps à réfléchir à ce sujet.

Un exemple:

Reader et Newspaper. Un Newspaper a beaucoup d' Readers et Reader a beaucoup d' Newspapers. Vous pouvez aussi appeler leurs Relations Subscription au lieu de NewspaperReader. De cette façon, il se sent aussi plus naturel si vous souhaitez ajouter des attributs à la relation ou souhaitez les objets de la carte à la table plus tard.

La convention de nommage plusieurs-à-plusieurs tables est une concaténation des noms des deux tables qui sont impliqués dans la relation (donc ColourShape irait bien dans votre cas) mais je pense que Nick d' posté grands suggestions Style et Texture.

34voto

Nick Dandoulakis Points 26809

Que diriez-vous de ColorShapeMap ou Style ou Texture .

22voto

Bill Karwin Points 204877

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 des tables 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 semble artificiel et mal à l'aise.

Joe Celko recommande dans son livre "SQL Style de Programmation" au nom de ces tables dans certaines langues naturelles manière. Par exemple, si une Forme est coloré par une Couleur, puis le nom de la table ColoredBy. Alors vous pourriez avoir un schéma plus ou moins lit naturellement comme ceci:

Shape <-- ColoredBy --> Color

À l'inverse, on pourrait dire d'une Couleur les couleurs d'une Forme:

Color <-- Colors --> Shape

Mais cela ressemble à la table du milieu est la même chose que Color avec un pluriel convention de nommage. Trop de confusion.

Probablement le plus clair d'utiliser l' ColoredBy convention de nommage. Intéressant que l'utilisation de la voix passive rend la convention de nommage de plus en plus clair.

18voto

OMG Ponies Points 144785

Nommez la table comme bon vous semble, à condition qu'elle soit informative:

 COLOR_SHAPE_XREF
 

Du point de vue du modèle, la table s'appelle une table join / corrollaire / référence croisée. J'ai gardé l'habitude d'utiliser _XREF à la fin pour rendre la relation évidente.

4voto

Bill the Lizard Points 147311

J'entends généralement cela appelé une table de jonction. Je nomme la table en fonction de ce à quoi elle se joint. Dans votre cas, ColorShape ou ShapeColor. Je pense qu'il est plus logique pour une forme d'avoir une couleur que pour une couleur. Je choisirais donc ShapeColor .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X