Bonjour,
J'ai un souci de conception des tables de ma base...
En gros j'ai une table qui décrit des expériences avec des champs type metadonnées, communs à toutes les expériences, donc rien de spécifique à ces expériences.
Table EXPERIENCE :
champ ID -> id de l'expérience
champ nom -> nom de l’expérience
champ type -> préparatoire, confirmation, validation
champ genre d’expérience : optique, mécanique, gazeux
Puis pour chaque genre d'expérience, j'ai autant de table que de genre d'expérience qui décrivent l'expérience en elle-même avec ses résultats :
C'est un exemple raccourci, chaque table a des champs totalement différents de l'une à l'autre, ce sont des expériences qui n'ont rien en commun, l'une aura 8 champs, l'autre 12 et la dernière 15.
Donc je DOIS avoir ces 3 tables séparées.
Table OPTIQUE :
champ id -> id
champ exp_id -> clé étrangère pour la table EXPERIENCE (id)
champ indice réfraction -> valeur mesurée
champ indice transmission -> valeur mesurée
Table MECANIQUE :
champ id -> id
champ exp_id -> clé étrangère pour la table EXPERIENCE (id)
champ dureté -> valeur mesurée
champ couple -> valeur mesurée
Table GAZEUX :
champ id -> id
champ exp_id -> clé étrangère pour la table EXPERIENCE (id)
champ pression -> valeur mesurée
champ dilatation -> valeur mesurée
Mon souci c'est que pour une EXPERIENCE donnée j'aurais un ID mais cet ID peut être affecté à une des trois tables. Et je sais la table dont il s'agit grâce au champs "genre d'expérience" qui va me renvoyer vers la bonne table.
Mais cette conception me gêne, je sens bien que ce n'est pas top, le champ "genre d'expérience" de la table EXPERIENCE est en fait une variable qui ira vers la table qui porte le même nom
Est-ce qu'il y aurait un moyen de s'en sortir autrement ?
Je pensais à une table d'association mais comment lui faire savoir que les résultats sont dans une table plutôt qu'une autre ?
Merci
Partager