-
Problème de ENUM
Bonjour tout le monde,
je voudrais savoir s'il est possible de mettre plusieurs valeurs dans une colonne à partir d'un enum ou autres, je m'explique...
J'ai une table contenant une liste de plugins (pour faire simple). Ces plugins sont compatibles sur différents OS (LFS,Win,AIX,...). Donc je voudrais créer une colonne OS avec un enum des différents OS possibles. Seulement, un plugin peut-être compatible sur plusieurs OS...
Donc comment faire? Ca serait bête de créer x colonnes pour les x OS et de déclarer compatible ou non... Puis-je mettre plusieurs valeurs du enum dans la colonne, quite à faire un traitement en PHP ou autre derrière?
Merci d'avance...
-
Il faut une table supplémentaire pour détailler la relation Plugin <-> OS
-
Comme le dit al1_24, utilisez une table d'association.
Si votre schéma est bloqué vous pouvez aussi utiliser du bit a bit sur un entier.
bon courage
-
Je n'ai pas beaucoup de connaissances en SQL, pourriez-vous un peu détailler votre explication svp...
Il faudrait que je crée une table de ce genre :
Plugin | OS
------------------
Plug1 | Sun
Plug1 | AIX
Plug1 | Win
Plug2 | Linux
......
-
-
Hum hum.
J'ai quelques petits soucis à imaginer mettre cette solution en place, car je dois faire + ou - le même pour une autre table, cad la compléter pour savoir si un autre type de plugin est compatible avec un OS.
Seulement cette autre table comprend environ 250 enregistrements. Si on multiplie ce chiffre par le nombre d'OS compatible, ça fera du 1000 enregistrements dans la nouvelle table, et ceux juste pour une infos pas primordiale...
Ne voyez-vous pas une autre solution? moi je pensais tout simplement mettre une colonne OS, mais en char(50), comme ça j'aurais mis les OS à la suite séparée par des virgules par exemple... Est-ce une mauvaise solution?
-
Pour faire une recherche ou un comptage dans cette colonne "concaténée", ce ne sera pas facile (voire impossible) et certainement pas performant
-
ok ok, je vais utiliser votre solution donc.
Merci beaucoup de vos explications.