Yo diría que ante todo:sea consistente.
Creo que ya casi llega con las convenciones que ha esbozado en su pregunta. Sin embargo, un par de comentarios:
Creo que los puntos 1 y 2 son buenos.
Punto 3:lamentablemente, esto no siempre es posible. Piensa en cómo te las arreglarías con una sola tabla foo_bar
que tiene columnas foo_id
y another_foo_id
ambos hacen referencia al foo
tabla foo_id
columna. Es posible que desee considerar cómo lidiar con esto. ¡Sin embargo, este es un caso 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 tener más de una columna de referencia.
Punto 5 - Evitaría esto. Le brinda 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 la base de datos que desee realizar. Por ejemplo, es posible que desee llamar a un índice foo_bar_idx1
o foo_idx1
- Depende totalmente de ti, pero vale la pena considerarlo.
Nombres de columnas singulares y plurales
Podría ser una buena idea abordar el espinoso problema de plural vs single en los nombres de las columnas, así como en los nombres de las tablas. Este tema a menudo causa grandes debates en la comunidad de DB. Me quedaría con las formas singulares tanto para los nombres de las tablas como para las columnas. Allá. lo he dicho
¡Lo principal aquí es, por supuesto, la consistencia!