Utilisée en production, l'application web de gestion du personnel gère plus de 600 employés. L'idée derrière la table staffDirectory c'est l'expansionabilité. En mettant tout dans une seule table, on peut faire des modifications dans la structure de la base sans se soucier des conséquences ! La table est structurée de cette façon :
Exemple de données :ID intID strTable strField strValue
1 1 Staff StaffID 1
2 1 Staff First Name John
3 1 Staff Location ID 4
4 4 Locations Location ID 4
5 4 Locations City Anytown
Créatif n'est-ce pas ? Bien que les requêtes pour retourner les données de la base puissent être un peu compliquées (120 lignes et 38 jointures pour obtenir l'équivalent de 'SELECT * FROM STAFF'), c'est une solution bien meilleure que son alternative (changer la structure des tables). De plus, je doute que les utilisateurs se plaignent d'attendre 5 à 10 secondes pour le chargement de la page. Les commerciaux en charge de la vente de l'application pourront utiliser mon argument favori : "Regardez comme l'application est puissante, elle fait tourner le processeur à 100% pendant 2 minutes". Allez, je mets au défi n'importe qui de trouver une meilleure mise en œuvre que celle-ci.