Conventions pour la conception des bases de données
CSWD

Author

Patrick Reuter (version de travail non-exhaustive)

Published

April 17, 2025

I. Conventions pour le nom et la structure de la base de données

Pour des raisons pédagogiques et pour faciliter les corrections, il est recommandé de respecter les conventions suivantes pour la conception de votre base de données.

Rappel des règles d’or pour la conception des bases de données :

  • Pas de duplication de données.
  • La structure d’une base de données ne doit pas évoluer avec le peuplement des données.

Structure de la base de données

Conventions à respecter :

  • Le nom d’une table doit être au singulier, sans caractères spéciaux, sans espaces, sans accents, et en minuscules. Seul le caractère _ (underscore) est autorisé.
  • Chaque table doit avoir un champ id qui est clé primaire et mis en incrémentation automatique (A_I).
  • Ne jamais répéter le nom de la table dans les noms des champs.
  • Pour les chaînes de caractères, utiliser le type TEXT plutôt que VARCHAR.
  • Les clés étrangères doivent avoir un INDEX et être nommées id_xxx, où xxx est le nom de la table référencée. Si plusieurs références existent vers la même table, on peut utiliser id_xxx_emetteur et id_xxx_destinataire.
  • Toute table remplie par les utilisateurs doit avoir un champ DATETIME (ou TIMESTAMP) appelé datecreation, représentant la date de création de l’enregistrement.

Exemple : Structure d’une base de données pour un site de petites annonces

Table membre (Données renseignées par les utilisateurs)

id pseudo motdepasse nom prenom datecreation
INT TEXT TEXT TEXT TEXT DATETIME
1 xabi Xabi Lagarde 2022-03-21 18:32:31
2 skater Patxi Berthaud 2023-08-06 23:22:17

Table categorie (Données proposées par l’administrateur)

id nom
INT TEXT
1 Voitures
2 Immobilier

Table annonce (Données renseignées par les utilisateurs)

id titre texte prix id_membre id_categorie valide datecreation
INT TEXT TEXT DECIMAL(10,2) INT INT TINYINT DATETIME
1 Location T1 465.00 1 2 1 2023-02-06 08:14:37
2 Twingo 2015 3400.00 2 1 0 2023-12-31 18:31:12

Exemple 1

Tables

Table pays et Table continent

id nom population id_continent
INT TEXT INT INT
1 Brésil 201103330 2
2 France 64768389 1
3 Suisse 7581000 1
id nom
INT TEXT
1 Europe
2 Amériques

Structure

  • Il y a deux tables :
    • Une table pays avec 4 champs (ou attributes ou columns).
    • Une table continent avec 2 champs.
  • Relation 1:n (one-to-many) :
    • Un pays appartient à un seul continent.
    • Un continent peut contenir plusieurs pays.

Données

  • 3 enregistrements (lignes) dans la table pays.
  • 2 enregistrements dans la table continent.

Exemple 2

Tables

Table nouvelle, Table tag et Table nouvelle_tag

Table nouvelle
id texte date
INT TEXT DATETIME
1 L’AS Saint Etienne en route vers la Ligue 1 2024-04-02 08:32:31
2 Encore un James Bond avec Daniel Craig ? 2023-11-26 11:03:22
3 Droit à une feuille manuscrite à l’examen 2024-04-01 11:23:01
4 On est à 4 mois des JO 2024 2024-03-26 17:52:40
Table tag
id nom
INT TEXT
1 Sport
2 Foot
3 Cinéma
4 Université
5 People
Table nouvelle_tag (table de jointure)
id id_nouvelle id_tag
INT INT INT
1 1 1
2 1 2
3 2 3
4 2 5
5 3 4
6 4 1

Structure

  • Il y a trois tables :
    • Une table nouvelle avec 3 champs (attributes ou columns).
    • Une table tag avec 2 champs.
    • Une table de jointure nouvelle_tag avec 3 champs, dont 1 clé primaire et 2 clés étrangères.
  • Relation n:m (many-to-many) :
    • Une nouvelle peut avoir plusieurs tags.
    • Un tag peut être associé à plusieurs nouvelles.

Données

  • 4 enregistrements dans la table nouvelle.
  • 5 enregistrements dans la table tag.
  • 6 enregistrements dans la table de jointure nouvelle_tag.