Direi che prima di tutto:sii coerente.
Penso che tu sia quasi arrivato con le convenzioni che hai delineato nella tua domanda. Un paio di commenti però:
I punti 1 e 2 sono buoni, credo.
Punto 3 - purtroppo questo non è sempre possibile. Pensa a come affronteresti una singola tabella foo_bar
che ha colonne foo_id
e another_foo_id
entrambi fanno riferimento a foo
tabella foo_id
colonna. Potresti considerare come affrontarlo. Questo è un caso un po' d'angolo però!
Punto 4 - Simile al punto 3. Potresti voler inserire un numero alla fine del nome della chiave esterna per soddisfare più di una colonna di riferimento.
Punto 5 - Lo eviterei. Ti fornisce poco e diventerà un mal di testa quando vorrai aggiungere o rimuovere colonne da una tabella in un secondo momento.
Alcuni altri punti sono:
Convenzioni di denominazione degli indici
Potresti voler introdurre una convenzione di denominazione per gli indici:questo sarà di grande aiuto per qualsiasi lavoro sui metadati del database che potresti voler eseguire. Ad esempio, potresti semplicemente voler chiamare un indice foo_bar_idx1
o foo_idx1
- totalmente a te ma vale la pena considerare.
Nomi di colonna singolari e plurali
Potrebbe essere una buona idea affrontare la spinosa questione del plurale rispetto al singolo nei nomi delle colonne e nei nomi delle tabelle. Questo argomento provoca spesso grandi dibattiti nella comunità DB. Rimarrei con forme singolari sia per i nomi delle tabelle che per le colonne. Là. L'ho detto.
La cosa principale qui è ovviamente la coerenza!