Solución:
Yo diría que ante todo: sea coherente.
Supongo que ya casi ha terminado con las convenciones que ha descrito en su pregunta. Sin embargo, un par de comentarios:
Los puntos 1 y 2 son buenos, creo.
Punto 3: lamentablemente, esto no siempre es posible. Piense en cómo se las arreglaría con una sola mesa. foo_bar
que tiene columnas foo_id
y another_foo_id
ambos de los cuales hacen referencia al foo
mesa foo_id
columna. Es posible que desee considerar cómo lidiar con esto. ¡Sin embargo, este es un caso un poco de esquina!
Punto 4: similar al punto 3. Es posible que desee introducir un número al final del nombre de la clave externa para adaptarse a tener más de una columna de referencia.
Punto 5 – Evitaría esto. Le proporciona poco y se convertirá en un dolor de cabeza cuando desee agregar o eliminar columnas de una tabla en una fecha posterior.
Algunos otros puntos son:
Convenciones de nomenclatura de índices
Es posible que desee introducir una convención de nomenclatura para los índices; esto será de gran ayuda para cualquier trabajo de metadatos de base de datos que desee realizar. Por ejemplo, es posible que desee llamar a un índice foo_bar_idx1
o foo_idx1
– totalmente depende de usted, pero vale la pena considerarlo.
Nombres de columnas singulares vs plurales
Podría ser una buena idea abordar el espinoso tema de plural vs single en los nombres de sus columnas, así como en los nombres de sus tablas. Este tema a menudo provoca grandes debates en la comunidad de DB. Me quedaría con formas singulares tanto para los nombres de las tablas como para las columnas. Allí. Lo he dicho.
¡Lo principal aquí es, por supuesto, la coherencia!
La consistencia es la clave para cualquier estándar de nomenclatura. Siempre que sea lógico y coherente, estará en un 99%.
El estándar en sí es una preferencia muy personal, por lo que si le gusta su estándar, ejecútelo.
Para responder a su pregunta directamente, no, MySQL no tiene una convención / estándar de nomenclatura preferido, por lo que usar la suya propia está bien (y la suya parece lógica).
MySQL tiene una breve descripción de sus reglas más o menos estrictas:
https://dev.mysql.com/doc/internals/en/coding-style.html
Estilo de codificación más común para MySQL por Simon Holywell:
http://www.sqlstyle.guide/
Consulte también esta pregunta: ¿Existe alguna guía de estilo de codificación publicada para SQL?