Est-il une convention de nommage pour MySQL?

Voici comment je le fais:

  1. Les noms de tables sont minuscules, utilise des traits de soulignement pour séparer les mots, et sont au singulier (par exemple foo, foo_bar, etc.
  2. J'en général (pas toujours) avoir un incrément automatique PK. J'utilise la convention suivante: tablename_id (par exemple foo_id, foo_bar_id, etc.).
  3. Lorsqu'une table contient une colonne est une clé étrangère, j'ai juste copier le nom de la colonne de la clé de tout ce tableau, il est venu. Par exemple, dire que le tableau foo_bar a la FK foo_id (où foo_id est le PK de foo).
  4. Lors de la définition des FKs pour appliquer l'intégrité référentielle, j'utilise la suite: tablename_fk_columnname (par exemple, poursuite de l'exemple 3, il serait foo_bar_foo_id). Puisque c'est un nom de table/colonne nom de l'association, il est garanti d'être unique dans la base de données.
  5. Je commande les colonnes comme ceci: PKs, FKs, puis le reste de colonnes par ordre alphabétique

Est-il un meilleur, plus standard façon de le faire?

  • Est-il de mal à utiliser pour l'auto incrément PK juste "id"? Pourquoi? Le nom de la colonne n'ont de sens que dans le contexte de la table. J'ai donc un "id" dans chaque tableau, et peut avoir de nombreuses id_<table_name> pour FK.
  • Je pense que la raison la plus simple contre c'est simplement pour des raisons de cohérence/simplicité. Plutôt que d'avoir id_tableB => oh non différentes-colonne nommée id, la cohérence de id_tableB => id_tableB a juste l'air plus propre... ou que l'OP t-il: foo_id => foo_id plutôt que foo_id => id