Salut à tous !
Voila je remanie une BDD pour "élargir son champ d'action" :
Je patauge pour trouver la meilleure solution permettant une évolutivité dans l'avenir (et ne pas me retrouver dans la situation actuelle...)
Actuellement j'ai 1 table :
- T_cultivar : {ID_CULTIVAR, DESIGNATION_CULTIVAR, DATE_OBTENTION, FK_TAXON, CARACTERE1, CARACTERE2....} pour décrire une variété
(CARACTEREx décrit une caractéristiques de la variété pour l'espèce en question, ce qui permet de l'identifier)
Il me faut aujourd'hui élargir cette BDD pour intégrer d'autres espèces... Mais les critères d'identification ne sont pas les mêmes (exemple : 1 forme pour une pomme, 1 teneur en sucre pour une betterave sucrière)
J'avais pensé faire des tables séparées, en considérant que l'espèce "pomme" était une entité, et l'espèce "blé" une autre.
Mon problème : En dehors de ces critères d'identification, tous les autres caractéristiques sont communes : designation, date d'obtention, ref taxonomie, fournisseur, pays d'obtention etc...). Faire x tables pour chaque espèce mutilplie ces champs... et oblige à créer des requêtes distinctes pour chaque table.
Serait-il possible de concevoir un modèle :
J'avais pensé séparé les champs communs du reste
- 1 table pour T_cultivar : {ID_CULTIVAR, DESIGNATION_CULTIVAR, DATE_OBTENTION, FK_TAXON, ....}
- 1 autre table pour les caractères propres à chaque espèce
mais cela ne résoud en rien ma multiplicité de table, et m'oblige à créer de nouvelles tables à chaque ajout de nouvelle espèce.
Y aurait-il un moyen d'abstraction de cette 2ème partie qui permettrait d'avoir une (des) tables communes, utilisables quelle que soient les espèces ?
Je pense que cela reviendrait à avoir une table qui définisse le contenu d'un champ et une autre qui contienne toutes les valeurs de champs :
- T-DEF_CARACTERES : ID_CARACTERE, ESPECE, CARACTERE, DEF_CARACTERE
- T-VAL_CARACTERES : ID_VAL_CARACTERE, FK_ID_CARACTERE, VALEUR
Il me semble que ce schéma n'est pas complet, ne faudrait-il pas un FK_ID_CULTIVAR dans T-VAL_CARACTERES ?
Qu'en pensez-vous ?
Mos
Partager