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)
| 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)
| INT |
TEXT |
| 1 |
Voitures |
| 2 |
Immobilier |
Table annonce (Données renseignées par les utilisateurs)
| 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
| INT |
TEXT |
INT |
INT |
| 1 |
Brésil |
201103330 |
2 |
| 2 |
France |
64768389 |
1 |
| 3 |
Suisse |
7581000 |
1 |
| 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
| 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
| INT |
TEXT |
| 1 |
Sport |
| 2 |
Foot |
| 3 |
Cinéma |
| 4 |
Université |
| 5 |
People |
Table nouvelle_tag (table de jointure)
| 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.