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_IDpodría usarse dos veces en el organigrama y, por lo tanto, calificarse como supervisor_employee_IDy subordinate_employee_IDrespectivamente.
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_IDes la clave se nombraría Personnel. Así que de inmediato la TableNameIDconvención no me funciona.
He visto el TableName.ID=PK TableNameID=FKestilo 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 IDENTITYcolumna (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_namepuede convertirse simplemente last_nameen la Personneltabla. El razonamiento aquí es que el dominio son los 'apellidos de las personas' y es más probable que se UNIONedite con last_namecolumnas 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.