Voici comment je fais :
- Les noms des tables sont en minuscules, utilisent des caractères de soulignement pour séparer les mots, et sont au singulier (par ex.
foo
,foo_bar
etc. - J'ai généralement (pas toujours) un PK à incrémentation automatique. J'utilise la convention suivante :
tablename_id
(par exemplefoo_id
,foo_bar_id
etc.). - Lorsqu'une table contient une colonne qui est une clé étrangère, je copie simplement le nom de la colonne de cette clé depuis la table d'où elle provient. Par exemple, disons que la table
foo_bar
a le FKfoo_id
(oùfoo_id
est le PK defoo
). - Lorsque je définis des FK pour faire respecter l'intégrité référentielle, j'utilise ce qui suit :
tablename_fk_columnname
(par exemple, dans le cadre de l'exemple 3, il s'agirait defoo_bar_foo_id
). Comme il s'agit d'une combinaison de nom de table et de nom de colonne, il est garanti qu'elle est unique dans la base de données. - J'ordonne les colonnes comme suit : PKs, FKs, puis le reste des colonnes par ordre alphabétique.
Existe-t-il une meilleure façon, plus standard, de procéder ?
9 votes
Est-il mauvais d'utiliser pour l'auto-incrément PK seulement "id" ? Pourquoi ? Le nom de la colonne n'a de sens que dans le contexte de la table. J'ai donc un "id" dans chaque table, et je peux avoir plusieurs id_<nom_table> pour FK.
3 votes
@Zbyszek Je pense que la raison la plus simple pour s'y opposer est simplement la cohérence/simplicité. Plutôt que d'avoir
id_tableB
=> oh non colonne portant un nom différentid
la cohérence deid_tableB
=>id_tableB
ça a l'air plus propre... ou comme OP le fait :foo_id
=>foo_id
plutôt quefoo_id
=>id
0 votes
C'est une excellente méthode. J'utilise presque la même chose, mais pour les noms de table, j'utilise le pluriel pour la table "racine" et le singulier pour les dépendances. Par exemple : entreprises et secteur_entreprise.
0 votes
"Les noms de tables (...) sont au singulier", ce serait un échec instantané en cours d'ingénierie informatique db. Pas à cause des conventions de nommage, mais parce que les "tables" sont un groupe de quelque chose. Si c'est au singulier, cela indique une mauvaise conception.