-
Table de tables ?
Bonjour,
J'ai un problème de conception. Je veux d'écrire des structures constituées d'empilement de matériaux divers. J'aurais donc des tables pour différentes classes de matériaux comme bois, verres, métaux , polymères ... Chacune de ces tables ont des structures différentes.
Je veux maintenant enregistrer dans une table des enregistrements décrivant un empilement d'un nombre quelconque de divers matériaux pris dans ces diverses tables, l'ordre de l'empilement étant important. Je voudrait alors pouvoir extraire dans l'ordre les propriétés des matériaux constituant l'empilement.
J'ai du mal à convertir ça en une structure utilisable de base de données.
Des indications ?
-
Bonjour,
Si les matériaux se trouvent dans différentes tables, ça va être compliqué au niveau clé étrangère. Tu ne peux pas regrouper ces matériaux dans une même table en les typant?
Sinon dans ta table d'empilements il faut prévoir une colonne "numéro de séquence" pour gérer l'ordre de l'empilement.
-
salut vanagreg,
pour le numero de sequence, je pensais à l'id du matériau dans la table empilement, qui sera auto-incrémenté et donc caractéristique de la séquence. Regrouper les matériaux en une seule table n'est pas possible car les caractéristiques contenues dans chaque table (pour chaque type de matériau) sont complètement différentes, donc dans une même table ça conduirait à un maximum de champs vides ...
-
ce qu'il se fait habituellement dans ce genre de cas est une table de matériaux avec un identifiant unique pour chaque matériau. et ensuite une table des caractéristiques où l'identifiant matériaux est une clé étrangère.
et pour les traitements dont vous parliez dans l'autre discussion, la théorie voudrait qu'il y ait aussi une table centralisée pour les traitements.
mais cela reste la théorie. pour approfondir la question, il faudrait que vous nous donniez plus de détails sur les différentes caractéristiques possibles.
-
bonjour et merci mathieu,
Il me semble que ce que tu propose ne fait que déplacer le problème : si on met les caractéristiques des matériaux dans une seule table de caractéristiques, la grande majorité des champs seront vides, car les propriétés des matériaux sont disjointes d'un type à l'autre - rien en commun. Je peux me tromper c'est un problème assez compliqué. Je renvoie à mon tour à l'autre discussion pour une suggestion propre à Laravel ...
-
je pensais plutôt à une table avec ces champs
- id_materiau
- nom_caracteristique
- valeur_carateristique
-
Vous devriez dû utiliser la notion d'héritage de tables. Lire l'article que j'ai écrit à ce sujet :
https://sqlpro.developpez.com/cours/...tion/heritage/
A +
-
Bonsoir SQLpro,
J'ai téléchargé le pdf de ton article : très intéressant ... J'ai effectivement l'impression que ça doit pouvoir faire le job, il faut que je prenne le temps d'y réfléchir.
Peut-être avec une table mère "matériau_générique" et des tables filles pour les différents types de matériaux.
Merci !
-
Tout à fait !
Et dans les outils de modélisation c'est prévu !
A +