Justement il y a pas deux tables dans cet exemple. C’est une table sur elle même. Alors je suis pas certain qu’une relation many to many ne va pas poser problème …
Je comprends pas bien du coup ce que tu veux faire et des tables dont tu disposes.
si tu dois faire tu one-to-many, et que tu pars sur une table qui contient tout, il faut revoir cette architecture. Est-ce que sur cette table, je peux effectuer les opérations ou non?
Et si je dois reprendre l’architecture, dois-je modifier la base actuelle pour repartir sur un schéma différent? C’est en gros le raisonnement que j’ai dans ce genre de situation. en essayant de prévoir ce que je pourrais ajouter ou ce que j’aurai besoin comme possible Features.
Avant de monter les tables, je passe par un dessin/schéma de mes tables possibles et je modifie tout sur ‹ papier ›. ensuite, je monte les tables et je teste.
J’ai une seule table où je décris les espèces de champignon.
Dans cette même table, j’ai un champs qui liste les probables confusions avec d’autres champignons.
Pour exemple, j’ai un bolet qui peut être confondu avec un autre bolet. Ces deux champignons sont dans la même table. Comment j’arrive à les relier ?
Plusieurs solutions je pense.
Tu peux prendre une table qui liste les champignons, puis une deuxième qui liste d’autres champignons et les relier.
Ou plutôt, si tu sors des listes, prendre une table qui liste les champignons, une deuxième qui liste les champinons aussi, et une 3e table qui fait le lien entre les champignons (en listant par exemple Champignons A plusieurs fois, si il est relié à plusieurs champignons). Tu lis ainsi la table du milieu pour ressortir quels champignons va avec quels autres. En gros le principe du Many-to-many.
Je pense à une table qui contient tes infos sur les champignons et ses colonnes (couleur, présence de volve, hauteur, saison, comestible, etc…) puis tu crées une table à deux colonnes, une qui contient l’id des champignons et l’autre qui contient l’id ou les id(s) d’un ou des champignons avec le(s)quel(s) il y aurait une confusion. Eventuellement une colonne String supplémentaire contenant + d’infos sur l’incompatibilité. Un petit SELECT du genre pour le champignon id = 126 pour récupérer les incompatibles dans un tableau.
« SELECT * FROM « tableDesIncompatilites » WHERE id = 126 » - à récupérer dans un tableau.
Dans la table de recherche lors de la construction, il ne faudra pas mettre les doublons (126 - 206 = 206 - 126) ça divisera le poids de la table par 2.
Merci pour vos solutions !! J’ai fouillé la doc directus en parallèle et j’ai vu ce petit paragraphe dans les relations M2M :
Self-Referencing
You can also have a M2M relationship that connects items within the same collection. An example of this is « Related Articles », where an article might relate to many other articles.
Je vais tenter de voir ce que ca donne. Je vous tiens au jus !
Après mes premiers tests, ca marche très bien. Il suffit de créer une relation M2M sur la même table. Je n’ai pas coché le lien inverse puisque on restait sur la même table.
Je suis maintenant capable de lier 2 items d’une même table