¿Qué debo nombre de una tabla que asigna dos tablas?

Digamos que tengo dos tablas:

Table: Color
Columns: Id, ColorName, ColorCode

Table: Shape
Columns: Id, ShapeName, VertexList

Lo que debería llamar a la tabla que asigna el color a la forma?

Table: ???
Columns: ColorId, ShapeId
  • ColorShape y ShapeColor alias de simetría.
  • Me encontré con una pregunta similar que no me vea antes de: stackoverflow.com/questions/1764483/…. Algunas otras ideas de que el hilo: Shape2Color, ShapeXColor, ShapeColorLink.
  • Si hay un estándar de nomenclatura de tablas de unión – entonces esto no sería opnion base. Luego de que habría sido la respuesta a la pregunta. Por el cierre de la cuestión de apagar el possability para alguien como yo, para saber si hay maneras estándar de nomenclatura de sus tablas de unión o no. Por favor reconsidere – los que cerró…
InformationsquelleAutor devuxer | 2009-11-28

24 Kommentare

  1. 169

    Sólo hay dos cosas difíciles de
    Ciencias de la computación: invalidación de caché
    y dar nombre a las cosas
    Phil Karlton

    Venir para arriba con un buen nombre para una tabla que representa un many-to-many relación hace que la relación sea más fácil de leer y entender. A veces la búsqueda de un gran nombre no es trivial, pero generalmente vale la pena pasar algún tiempo pensando.

    Un ejemplo: Reader y Newspaper.

    Un Newspaper tiene muchos Readers y un Reader tiene muchos Newspapers

    Puede llamar a la relación NewspaperReader pero un nombre como Subscription puedan transmitir mejor lo que la tabla se acerca.

    El nombre Subscription también es más idiomático en caso de que desee asignar la tabla de los objetos más adelante.

    La convención de nomenclatura de many-to-many tablas es una concatenación de los nombres de las dos tablas que están involucrados en la relación. ColourShape sería un default en su caso. Dicho esto, creo que Nick D se acercó con dos grandes sugerencias: Style y Texture.

    • +1 : bien dicho – con una cuidada nombre, ahora va a hacer que el mantenimiento sea mucho más fácil en el futuro.
    • «Sólo hay dos cosas difíciles en Ciencias de la computación: invalidación de caché, dar nombre a las cosas, y off-by-one errores»
    • digamos que, si hay una categoría de productos y otra categoría para la receta. para ambas tablas tendremos recipe_categories y product_categories, y ya que no podemos simplemente «categorías» nombre de la tabla para ambas tablas, con el fin de evitar el conflicto, que es la unión de las tablas para el producto y la receta va a ser «recipe_recipe_categories» y «product_product_categories»
    • Estrictamente hablando con lógica de conexión de la información no implica la adición de nueva información. Creo que es lo que pasa cuando se intenta encontrar una palabra adecuada para tablas de unión. La gente la lectura de los periódicos no hacen suscriptores, y no hay formas sin color. El uso de «suscriptores» son la adición de nueva información (significado) cuando se conecta a los lectores a los periódicos. Y no hay palabras para describir la relación de la forma y el color nunca ha sido algo de lo opuesto, por lo tanto no hay nombre para eso. Recuerde que no hay nuevos atributos que se le dan en una tabla de unión.
  2. 34

    ¿ColorShapeMap o Estilo o Textura.

    • +1 para venir para arriba con algo más elegante que acaba de unirse a los nombres de las tablas
  3. 22

    Interesante alrededor de la mitad de las respuestas de dar un término general para cualquier tabla en la que se implementa un muchos-a-muchos de relación, y la otra mitad de las respuestas sugerir un nombre para esta tabla específica.

    Llamé estas tablas las intersecciones de las tablas de en general.

    En términos de las convenciones de nomenclatura, la mayoría de las personas le dan un nombre que es una amalgama de las dos tablas en la que muchos-a-muchos de relación. Así que en este caso, «ColorShape» o «ShapeColor.» Pero me parece que este aspecto artificial y torpe.

    Joe Celko recomienda en su libro «SQL Estilo de Programación» a nombre de estas tablas en algunos de lenguaje natural manera. Por ejemplo, si una Forma es de color por el Color, luego el nombre de la tabla ColoredBy. Entonces usted podría tener un diagrama que más o menos se lee de forma natural como este:

    Shape <-- ColoredBy --> Color

    Por el contrario, se podría decir que un Color los colores de una Forma:

    Color <-- Colors --> Shape

    Pero esto se parece a la mitad de la tabla es la misma cosa como Color con un plural de la convención de nomenclatura. Demasiado confuso.

    Probablemente la más clara para el uso de la ColoredBy convención de nomenclatura. Interesante que el uso de la voz pasiva hace que la convención de nomenclatura más claro.

    • Bill, gracias. Respuesta muy interesante.
    • Todo acerca de los sinónimos, y el sinónimo de la preferencia de los impactos de la convención de nomenclatura.
    • Supongo que HasColor podría ser otro posible nombre para la intersección de la tabla que utiliza el lenguaje natural.
    • El problema que tengo con la convención de nomenclatura es hasColour/ColouredBy para qué? Se frustra el propósito de la asignación de nombres a tener que usar DESCRIBE para averiguar las relaciones.
    • Similares a los OMG Ponis del comentario, ¿qué pasa si hay otras cosas que pueden tener un color? Si tengo otra tabla que asigna Texto a Color, iba a tener un nombre único. Tal vez ShapeHasColor y TextHasColor?
    • Sí, esos son buenos comentarios. Yo creo que estos se pueden resolver dentro de la guía de uso del lenguaje natural como una convención de nomenclatura.

  4. 18

    Nombre de la tabla lo que quieras, siempre y cuando sea informativa:

    COLOR_SHAPE_XREF

    De un modelo de perspectiva, la tabla se llama join/corrollary/referencia cruzada de tabla. He mantenido la costumbre de utilizar _XREF al final para hacer que la relación obvia.

    • Yo también lo uso _XREF… siempre tuvo sentido para mí.
    • Me gusta la idea, pero como un usuario de AutoCAD necesito encontrar un sufijo diferente de _XREF…
  5. 7

    Este es un Entidad Asociativa y es muy a menudo importante en su propio derecho.

    Por ejemplo, una relación de muchos a muchos entre los TRENES y a VECES da lugar a un CALENDARIO.

    Si no hay una obvia nueva entidad (tales como el calendario), a continuación, la convención es para ejecutar las dos palabras juntas, dando COLOUR_SHAPE o similar.

  6. 6

    Una tabla de asignación es lo que esto es generalmente llamado.

    ColorToShape
    ColorToShapeMap
    • En realidad, el término de Asignación se utiliza generalmente cuando la relación es uni-direccional (uno a uno o de muchos) Es este el caswe? Si es así, por lo general, usted don’; t necesidad de otra tabla. Si el color siempre determina la forma, a continuación, añadir una forma de la columna a la tabla de colores, o viceversa. Una tabla adicional es generalmente sólo se necesita cuando la relación es de muchos a muchos.. Y en ese caso el plazo de asignación no es apropiado.
    • En este caso, de cualquier forma se pueden adaptar a cualquier color, por lo que es de muchos a muchos.
    • Por CIERTO, si es una tabla de asignación o no, me gusta la idea de usar To en el nombre. Lo que si tiene la Forma con HighlightColor. Si usted lo llama ShapeHighlightColor, es un poco ambiguo si es un ShapeHighlight asignado a un color o una Forma asignan a un Color de Resaltado. Así, ShapeToHighlightColor podría ser más claro.
    • FYI: Oracle (9i/10g de todos modos) tiene un 32 límite de caracteres para los nombres de tabla, de modo que usted no puede conseguir también prolijo.
    • He utilizado la respuesta anterior, pero en un poco diferente manera. es decir, Color_Shape_Map. Convenio: Table1_Table2_Map
  7. 5

    He trabajado con los Administradores de bases de datos que llamar a un de unirse a la mesa.

    Colour_Shape es bastante típico que – a menos que la relación se ha explícito de dominio-nombre específico.

    • No me gusta porque pone de relieve que entre en conflicto con la clave externa de las convenciones de nomenclatura de tal forma que acabes con desagradables nombres como Colour_Shape_Colour y Colour_Shape_Shape.
  8. 4

    Generalmente oigo que la denominada Tabla de Unión. I nombre de la tabla por lo que se une, por lo que en su caso ColorShape, o ShapeColor. Creo que tiene más sentido para una Forma de tener un color de un Color a tener forma, así que me iría con ShapeColor.

  9. 3

    Tabla intermedia o un de Unirse a la Mesa

    Me gustaría el nombre de «ColorShapes» o «ColorShape», dependiendo de su preferencia

  10. 3

    tabla de Unión

    O Bridge Table

    O Join Table

    O Map Table

    O Link Table

    O Cross-Reference Table

    Este entra en uso cuando vamos por muchos-a-muchos de relaciones, donde las claves tanto de las tablas forma el compuesto clave principal de la tabla de unión.

  11. 3

    Recomiendo el uso de una combinación de los nombres de las entidades y los puso en el plural. Por lo tanto el nombre de la tabla se expresan relación de «muchos a muchos».

    En su caso:

    Color + Shape = ColorsShapes

    • Si usted va a los «nombres de tablas» de la ruta, este es mejor ya que el singular versión «suele» ser nombres de espacios de tabla.
  12. 2

    También he oído el término Asociativa tabla utilizada.

    un nombre para la tabla podría ser ColorShapeAssociations lo que significa que cada fila representa una asociación entre color y 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ía el conjunto de todas formas el color está asociado con, y las filas de una forma específica sería el conjunto de todos los colores que conforman vino en…

    • Pero, ¿qué haría usted el nombre de la tabla real?
    • O la asociación de la mesa’.
    • Depende de lo que la tabla está describiendo. Si dice «nada de naranja debe ser un rombo’, ‘nada púrpura debe ser un círculo’, etc, entonces usted podría llamar una cosa (Colour_of_Shape, tal vez). Si es más laxa definición conocidos colores para las formas, que permiten una única forma para aparecer muchas veces – entonces tal vez «Shape_Colour_Map’.
  13. 2

    En general, la mayoría de las bases de datos tienen algún tipo de convención de nomenclatura para los índices, claves primarias y así sucesivamente. En PostgreSQL la siguiente nomenclatura ha sido sugerido:

    • clave principal: tablename_columnname_pkey
    • única restricción: tablename_columnname_clave
    • exclusivo restricción: tablename_columnname_excl
    • índice para otros fines: tablename_columnname_idx
    • clave externa: tablename_columnname_fkey
    • secuencia: tablename_columnname_seq
    • desencadenantes: tablename_actionname_after|before_trig

    Su tabla es una tabla vinculada a mí. Para mantenerse en línea con la nomenclatura de arriba, yo elegiría la siguiente:

    • tabla vinculada: tablename1_tablename2_lnk

    En una lista de objetos de la tabla la tabla vinculada será después de tablename1. Esto podría ser visualmente más atractivo. Pero también se puede optar por un nombre que describa el propósito del enlace como otros han sugerido. Esto podría ayudar a mantener el nombre de la columna de id de corto (si el enlace debe tener su propio nombre de id y se hace referencia en otras tablas).

    • o gustaba tabla: purposename_lnk
    • Good ol’ notación húngara, nos encontramos de nuevo.
  14. 1

    Siempre he sido parcial para el término de la «Hamburguesa de la Tabla». No sé por qué – suena bien.

    Ah, y que yo llamaría la tabla ShapeColor o ColorShape dependiendo de que es el más comúnmente utilizado de la tabla.

  15. 1

    Es difícil contestar algo tan arbitrario como este, pero yo tiendo a preferir tosh la idea de nombrarlo después de que algo en el dominio real en lugar de algún descripción genérica de las relaciones subyacentes.

    Muy a menudo este tipo de tabla se convertirá en algo más rico para el modelo de dominio y tendrá los atributos adicionales por encima y más allá de los vinculados claves foráneas.

    Por ejemplo, ¿qué pasa si usted necesita para almacenar una textura además del color? Podría parecer un poco funky para ampliar la SHAPE_COLOR tabla para mantener su textura.

    Por otro lado, también hay algo que decir para hacer una decisión bien informada basada en lo que los requisitos que han de hoy y estar preparados para refactorizar cuando los requisitos adicionales que se introdujo más tarde.

    Todo lo que dijo, yo diría que es la SUPERFICIE de si tenía conocimiento de que habría adicional de la superficie como las propiedades introdujo más tarde. Si no, yo no tendría problemas llamando SHAPE_COLOR o algo por el estilo y movimiento en los más urgentes problemas de diseño.

  16. 1

    Tal vez sólo ColoredShape?

    No estoy seguro de que tengo la pregunta. Es sobre este caso específico o está buscando las directrices generales?

    • Pautas generales.
  17. 0

    Me gustaría nombre con los nombres exactos de las tablas que se unió a = ColorShape.

  18. 0

    En adiction a lo que el Desarrollador de Arte se ha relacionado,

    ColorShape

    sería un habitual de la convención de nomenclatura. En ER diagrama, sería una relación.

  19. 0

    Llamar una referencia cruzada de tabla.

    XREF_COLOR_SHAPE
    (
         XCS_ID INTEGER
         C_ID   INTEGER
         S_ID   INTEGER
    )
  20. 0

    Yo uso la r_shape_colors o r_shape_color dependiendo de su significado.

    r_ sería un reemplazo para xref_ en este caso.

  21. 0

    Mi voto es por un nombre que describe la tabla mejor. En este caso podría ser ShapeColor pero en muchos casos un nombre diferente del de una concatenación es mejor. Me gusta la lectura y para me, que significa que no hay sufijos, no pone de relieve y sin prefijos.

  22. 0

    Me gustaría ir personalmente para Colour_Shape, con el carácter de subrayado: sólo porque he visto este convenio suba un poco. [pero de acuerdo con los otros posts aquí que probablemente hay más de ‘poética’ maneras de hacer esto].

    Tener en cuenta que las claves externas también se deben construir en esta tabla de combinación, que haría referencia tanto el Color & Forma de tablas, que también sería de ayuda con la identificación de la relación.

  23. 0

    Un convenio veo un montón para unir tablas que a mi personalmente me gusta es ‘Colour_v_Shape’, que he oído folk referirse coloquialmente como ‘frente a las tablas’.

    Se hace muy evidente a simple vista que la tabla representa un muchos-a-muchos de relación, y ayuda a evitar que (aunque raro) situación de confusión cuando se intenta concatenar dos palabras que de otro modo podrían formar una palabra compuesta, por ejemplo la «Mantequilla» y «Leche» puede convertirse en «Suero de leche», pero lo que si usted también necesita para representar a una entidad llamada ‘Suero’?

    Haciendo de esta manera, usted tendría ‘Butter_v_Milk’ y ‘Suero’ – no hay confusión.

    También, me gusta pensar que hay un Foo Fighters referencia en la pregunta original.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea