J'ai plusieurs 'modules' (pour l'instant, 4), chacun ayant sa propre table.Mysql plusieurs colonnes pour la relation polymorphique - faisable?
Je veux implémenter un système d'étiquette pour tous ces modules. Les étiquettes auront une relation de plusieurs à plusieurs entre chaque module respectivement.
Pour mettre en œuvre cette relation polymorphes, je pensais de créer un tableau croisé dynamique comme celui-ci:
tag_name | module_1_id | module_2_id | module_3_id | module_4_id ... ainsi de suite.
n'importe quelle ligne de ce tableau pivotant tag_module aura un fk valide à exactement un module_id et le reste sera défini sur null.
Ma question est, est-ce une façon extrêmement dangereuse de procéder à cette mise en œuvre? Y at-il des moyens qui sont de loin meilleurs que cela pour obtenir ce que je veux?
Comment est-ce que je peux assurer l'unicité d'un tag_name avec un module_N_id, signifiant qu'un élément particulier d'un module particulier devrait avoir une étiquette spécifique assignée seulement une fois?
De même, au fil du temps, le nombre de modules va augmenter, donc à l'avenir, il est possible que le nombre de colonnes soit de 10,20 voire 50. Ce type de mise en œuvre va-t-il empêcher ce type de croissance?
ok, donc tag_id + module_1_id + module_2_id ..... module_N_id sera-t-il unique? Mis à part cela, y a-t-il des problèmes avec ce type de design? –
Je ne comprends pas vraiment votre question. – Shadow
Je veux demander si cette conception a de sérieux problèmes de performance ou des problèmes? va augmenter le nombre de colonnes à 30 ralentir les performances? –