Un exemple
Le spécialiste interrogé dit qu'une moto a une roue av et une roue ar différentes. Les caractéristiques sont le diamètre, le type de jante (rayons, monobloc) et la section. Comme le concepteur/développeur est malin et qu'il voit loin, notamment la base de données avec ses tables et ses colonnes, il se dit qu'une table est suffisante (mêmes colonnes). Il modélise donc ceci :
1 2 3 4 5 6
|
+--1,1----(roule av)----0,n--+
| |
[ Moto ] [ Roue ]
| |
+--1,1----(roule ar)----0,n--+ |
Une fois la base de données et le logiciel opérationnels, le spécialiste souhaite une évolution : il veut rajouter le type de pignon et le nombre de dents de la roue... arrière (sans être spécialiste de moto, je crois savoir qu'une roue avant n'a pas de pignon). Le concepteur/développeur n'a alors que deux options :
a) il crée une nouvelle table (qu'il devra remplir avec une partie des lignes de la 1e table) et... modifie probablement une grande partie des requêtes concernant les roues
b) il conserve l'existant (tant pis, il y aura des Null dans les nouvelles colonnes pour les lignes des roues av) et... modifie probablement une grande partie des requêtes concernant les roues
Pourtant, le spécialiste avait bien dit qu'une roue avant est différente d'une roue arrière...
Partager