MySQL no ofrece consideraciones específicas aparte de ser una base de datos SQL. Entonces la pregunta es qué convención de nomenclatura debería usarse para una base de datos SQL.
Tomando nota de que realmente se puede nombrar columnas lo que quiera (dentro de la gama de nombres permitidos), al evaluar la mejor elección de los nombres, considere:
- cómo convenientemente serán los nombres de interactuar con las características del lenguaje SQL - se une en particular?
- ¿Qué tan bien ayudarán los nombres a la comprensión?
En cuanto a 1, tenga en cuenta:
- ¿Cómo se comporta la cláusula USING?
- ¿Cómo se comporta la cláusula NATURAL JOIN?
- ¿Cómo se comporta INNER JOIN cuando las columnas sin unión de diferentes tablas de origen tienen el mismo nombre y están SELECCIONADAS? (Aunque SQL permite que los nombres punteados difieran los conflictos, esto no se extiende a las subconsultas).
En cuanto a 2, considere que a medida que su esquema evolucione, lo que es primario puede volverse extraño. ¿Cuál es uno puede convertirse en muchos? ¿Ayuda cambiar el nombre de las columnas solo porque cambia la cardinalidad?
Finalmente, considere que una clave primaria de una sola columna no siempre es una clave artificial. En este ejemplo podría ser en realidad una clave externa (1-1 relación):
TAREA {task_id, task_created_date} - tarea con task_id fue creado el task_created_date
TASK_DUE {task_id, task_due_date} - tarea con task_id se debe en DUE_DATE
Huh? 'tableName_id' se usa generalmente para un campo de relación externo, no para la tabla en sí, ¿o sí? –
Esto se ha pedido muchas veces. Usualmente tales preguntas solo conducen a la llama. – Quassnoi