Digamos que tengo dos tablas:
Table: Color
Columns: Id, ColorName, ColorCode
Table: Shape
Columns: Id, ShapeName, VertexList
¿Cómo debo llamar a la tabla que asigna el color a la forma?
Table: ???
Columns: ColorId, ShapeId
Digamos que tengo dos tablas:
Table: Color
Columns: Id, ColorName, ColorCode
Table: Shape
Columns: Id, ShapeName, VertexList
¿Cómo debo llamar a la tabla que asigna el color a la forma?
Table: ???
Columns: ColorId, ShapeId
Shape2Color
,ShapeXColor
,ShapeColorLink
.Respuestas:
La idea de un buen nombre para una tabla que represente una
many-to-many
relación hace que la relación sea más fácil de leer y comprender. A veces, encontrar un gran nombre no es trivial, pero generalmente vale la pena pasar un tiempo pensando en ello.Un ejemplo:
Reader
yNewspaper
.A
Newspaper
tiene muchosReaders
y aReader
tiene muchosNewspapers
Podría llamar a la relación,
NewspaperReader
pero un nombre comoSubscription
podría transmitir mejor de qué se trata la tabla.El nombre
Subscription
también es más idiomático en caso de que desee asignar la tabla a objetos más adelante.La convención para nombrar
many-to-many
tablas es una concatenación de los nombres de ambas tablas que están involucradas en la relación.ColourShape
sería un defecto razonable en su caso. Dicho esto, creo que a Nick D se le ocurrieron dos grandes sugerencias:Style
yTexture
.fuente
¿Qué tal ColorShapeMap o Style o Texture ?
fuente
Interesante sobre la mitad de las respuestas dan un término general para cualquier tabla que implemente una relación de muchos a muchos, y la otra mitad de las respuestas sugiere un nombre para esta tabla específica.
Llamé a estas tablas tablas de intersecciones en general.
En términos de convenciones de nomenclatura, la mayoría de las personas dan un nombre que es una amalgama de las dos tablas en la relación de muchos a muchos. Entonces, en este caso, "
ColorShape
" o ""ShapeColor
. Pero encuentro que esto se ve artificial e incómodo.Joe Celko recomienda en su libro "Estilo de programación SQL" nombrar estas tablas de manera natural. Por ejemplo, si una Forma está coloreada por un Color, entonces nombra la tabla
ColoredBy
. Entonces podría tener un diagrama que se lea más o menos naturalmente de esta manera:Por el contrario, se podría decir que un Color colorea una Forma:
Pero esto parece que la tabla del medio es lo mismo que
Color
con una convención de nomenclatura plural. Demasiado confusoProbablemente sea más claro usar la
ColoredBy
convención de nomenclatura. Es interesante que el uso de la voz pasiva aclare la convención de nomenclatura.fuente
HasColor
podría ser otro nombre posible para la tabla de intersección que usa lenguaje natural.hasColour
/ColouredBy
para qué? Derrota el propósito de nombrar para tener que usarDESCRIBE
para descubrir las relaciones.ShapeHasColor
yTextHasColor
?Nombra la mesa como quieras, siempre que sea informativa:
Desde la perspectiva del modelo, la tabla se denomina tabla de unión / corrollary / referencia cruzada. He mantenido la costumbre de usar
_XREF
al final para hacer obvia la relación.fuente
Esta es una entidad asociativa y, a menudo, es bastante importante por derecho propio.
Por ejemplo, una relación de muchos a muchos entre TRENES y TIEMPOS da lugar a un CALENDARIO.
Si no hay una nueva entidad obvia (como el horario), entonces la convención es ejecutar las dos palabras juntas, dando COLOUR_SHAPE o similar.
fuente
Una tabla de mapeo es lo que generalmente se llama esto.
fuente
To
en el nombre. ¿Qué pasa si tienes Shape con HighlightColor? Si lo llamaShapeHighlightColor
, es un poco ambiguo si es un ShapeHighlight mapeado a un color o una Shape mapeado a un Highlight Color. Entonces,ShapeToHighlightColor
podría ser más claro.He trabajado con DBA que lo llaman una tabla de unión .
Colour_Shape es bastante típico, a menos que la relación tenga un nombre específico de dominio explícito.
fuente
Colour_Shape_Colour
yColour_Shape_Shape
.Por lo general, escucho que se llama una mesa de conexiones. Nombro la tabla por lo que une, así que en su caso, ya sea ColorShape o ShapeColor. Creo que tiene más sentido que una Forma tenga un color que un Color que tenga una forma, así que iría con eso
ShapeColor
.fuente
Junction table
O
Bridge Table
O
Join Table
O
Map Table
O
Link Table
O
Cross-Reference Table
Esto entra en uso cuando buscamos relaciones de muchos a muchos donde las claves de ambas tablas forman la clave primaria compuesta de la tabla de unión.
fuente
Recomiendo usar una combinación de los nombres de las entidades y ponerlas en plural. Así, el nombre de la tabla expresará la conexión "muchos a muchos".
En tu caso:
fuente
Tabla intermedia o una tabla de unión
Lo llamaría "ColorShapes" o "ColorShape", según su preferencia
fuente
También he escuchado el término tabla asociativa utilizada.
un nombre para su tabla puede
ColorShapeAssociations
significar que cada fila representa una asociación entre ese color y esa forma. La existencia de una fila implica que el color viene en esa forma y que la forma viene en ese color. Todas las filas con un color específico serían el conjunto de todas las formas con las que está asociado el color, y las filas para una forma específica serían el conjunto de todos los colores en los que esa forma vino ...fuente
En general, la mayoría de las bases de datos tienen algún tipo de convención de nomenclatura para índices, clave primaria, etc. En PostgreSQL se han sugerido los siguientes nombres:
Tu mesa es una mesa vinculada para mí. Para estar en línea con los nombres anteriores, elegiría lo siguiente:
En una lista de objetos de tabla, la tabla vinculada estará después de tablename1. Esto podría ser visualmente más atractivo. Pero también puede elegir un nombre que describa el propósito del enlace como otros han sugerido. Esto podría ayudar a mantener corto el nombre de la columna de identificación (si su enlace debe tener su propia identificación con nombre y se hace referencia en otras tablas).
fuente
Siempre he sido parcial al término "tabla de hamburguesas". No sé por qué, simplemente suena bien.
Ah, y llamaría a la tabla ShapeColor o ColorShape dependiendo de cuál es la tabla más utilizada.
fuente
Mesa "Muchos-Muchos". Lo llamaría "ColourShape" o viceversa.
fuente
Es difícil responder algo tan arbitrario como esto, pero tiendo a preferir la idea de nombrarlo después de algo en el dominio real en lugar de una descripción genérica de las relaciones subyacentes.
Muy a menudo, este tipo de tabla evolucionará en algo más rico para el modelo de dominio y tomará atributos adicionales más allá de las claves externas vinculadas.
Por ejemplo, ¿qué sucede si necesita almacenar una textura además del color? Puede parecer un poco extraño expandir la tabla SHAPE_COLOR para mantener su textura.
Por otro lado, también hay algo que decir para tomar una decisión bien informada basada en los requisitos que tiene hoy y estar preparado para refactorizar cuando se introducen requisitos adicionales más adelante.
Dicho todo esto, lo llamaría SUPERFICIE si tuviera la idea de que más adelante se introducirían propiedades similares a la superficie. Si no, no tendría problemas para llamarlo SHAPE_COLOR o algo por el estilo y pasar a problemas de diseño más urgentes.
fuente
Tal vez solo
ColoredShape
?No estoy seguro de haber entendido la pregunta. ¿Se trata de este caso específico o buscas pautas generales?
fuente
Lo nombraría con los nombres exactos de las tablas que se unen = ColorShape.
fuente
Además de lo que Developer Art ha relacionado,
sería una convención de nomenclatura habitual. En el diagrama ER, sería una relación.
fuente
Llámalo una tabla de referencia cruzada.
fuente
Yo usaría
r_shape_colors
or_shape_color
dependiendo de su significado.r_
sería un reemplazo paraxref_
en este caso.fuente
Mi voto es por un nombre que describa mejor la tabla. En este caso puede ser,
ShapeColor
pero en muchos casos es mejor un nombre diferente de una concatenación. Me gusta la legibilidad y para mí , eso significa sin sufijos, sin guiones bajos y sin prefijos.fuente
Yo personalmente elegiría Colour_Shape, con el guión bajo: solo porque he visto esta convención aparecer bastante. [pero estoy de acuerdo con las otras publicaciones aquí que probablemente hay formas más 'poéticas' de hacer esto].
Tenga en cuenta que las claves foráneas también deben construirse en esta tabla de unión que haría referencia tanto a las tablas de Color y forma que también ayudarían a identificar la relación.
fuente
Una convención que veo mucho para unir tablas que personalmente me gusta es 'Colour_v_Shape', que he escuchado a la gente referirse coloquialmente como 'versus tablas'.
De un vistazo, deja muy claro que la tabla representa una relación de muchos a muchos, y ayuda a evitar esa situación confusa (aunque rara) cuando intenta concatenar dos palabras que de otro modo podrían formar una palabra compuesta, por ejemplo 'Mantequilla' y 'Milk' puede convertirse en 'ButterMilk', pero ¿y si también necesitaras representar a una entidad llamada 'Buttermilk'?
Al hacerlo de esta manera, tendrías 'Butter_v_Milk' y 'Buttermilk', sin confusión.
Además, me gusta pensar que hay una referencia de Foo Fighters en la pregunta original.
fuente