Llegando a esto desde la perspectiva de un diccionario de datos formal, nombraría el elemento de datos invoice_ID
. Generalmente, el nombre de un elemento de datos será único en el diccionario de datos e idealmente tendrá el mismo nombre en todas partes, aunque a veces se pueden requerir términos de calificación adicionales según el contexto, por ejemplo, el elemento de datos nombrado employee_ID
podría usarse dos veces en el organigrama y, por lo tanto, calificarse como supervisor_employee_ID
y subordinate_employee_ID
respectivamente.
Obviamente, las convenciones de nomenclatura son subjetivas y una cuestión de estilo. Creo que las directrices ISO / IEC 11179 son un punto de partida útil.
Para el DBMS, veo tablas como colecciones de entidades (excepto aquellas que solo contienen una fila, por ejemplo, tabla de cofig, tabla de constantes, etc.), por ejemplo, la tabla donde my employee_ID
es la clave se nombraría Personnel
. Así que de inmediato la TableNameID
convención no me funciona.
He visto el TableName.ID=PK TableNameID=FK
estilo utilizado en modelos de datos grandes y debo decir que lo encuentro un poco confuso: prefiero que el nombre de un identificador sea el mismo en todas partes, es decir, que no cambie el nombre en función de la tabla en la que aparece. Algo a tener en cuenta es el estilo mencionado anteriormente parece usarse en las tiendas que agregan una IDENTITY
columna (de incremento automático) a cada tabla mientras rechazan las claves naturales y compuestas en las claves externas. Esas tiendas tienden a no tener diccionarios de datos formales ni a construir a partir de modelos de datos. Una vez más, esto es simplemente una cuestión de estilo y una a la que no me suscribo personalmente. Entonces, en última instancia, no es para mí.
Dicho todo esto, puedo ver un caso para eliminar a veces el calificador del nombre de la columna cuando el nombre de la tabla proporciona un contexto para hacerlo, por ejemplo, el elemento nombrado employee_last_name
puede convertirse simplemente last_name
en la Personnel
tabla. El razonamiento aquí es que el dominio son los 'apellidos de las personas' y es más probable que se UNION
edite con last_name
columnas de otras tablas en lugar de usarse como una clave externa en otra tabla, pero, de nuevo ... podría cambiar de opinión, a veces nunca se sabe. Esa es la cuestión: el modelado de datos es en parte arte, en parte ciencia.