Conventions de nommage en base de données : Tables, colonnes et clés

6 min de lecture

Une nomenclature cohérente dans les bases de données évite la confusion, simplifie les requêtes et rend les migrations de schéma plus sûres.

Le standard : snake_case

La convention écrasante dans les bases de données SQL est snake_case pour tout : noms de tables, noms de colonnes, index et contraintes.

CREATE TABLE user_accounts (
  user_id SERIAL PRIMARY KEY,
  first_name VARCHAR(100),
  last_name VARCHAR(100),
  created_at TIMESTAMP DEFAULT NOW()
);

Noms de tables : singulier ou pluriel ?

StyleExempleUtilisé par
Singulieruser, orderLaravel, Django
Plurielusers, ordersRails, beaucoup d'équipes

Choisissez-en un et soyez cohérent. Les deux sont valides.

Règles de nommage des colonnes

  • Clé primaire : id ou table_name_id
  • Clé étrangère : referenced_table_id (p. ex. user_id)
  • Horodatages : created_at, updated_at, deleted_at
  • Booléens : is_active, has_verified
  • Évitez les mots réservés : ne nommez pas des colonnes order, user, group

Noms d'index et de contraintes

idx_users_email        -- index
uq_users_email         -- contrainte unique
fk_orders_user_id      -- clé étrangère
chk_orders_total       -- contrainte de vérification

Convertir en snake_case

Utilisez le convertisseur snake_case ou le hub de conversion de casse.