Bonjour,
Je m'interroge sur la meilleur facon de structurer ma base et mes tables dans le cadre de relation n to n, utilisés pour des controles d'accès.
Le plus simple est de vous donner un exemple.
J'ai une table fournisseur, une table catégorie, une table utilisateur.
Chaque fournisseur peut être associé à plusieurs catégories.
Un utilisateur a des droits sur plusieurs catégories dans son profil.
Remarque: On compte plusieurs centaine de catégorie
Un utilisateur peut voir uniquement les fournisseurs associés à ses catégories.
exemple
Fournisseur A produit les catégories 1, 2, et 3
Fournisseur B produit les catégories 6 et 7
Utilisateur u1 peut voir les categories 1, 7
Utilisateur u2 peut voir les categories 4, 6
-> u1 peut voir le fournisseur A et B
-> u2 ne voit que le fournisseur B
Première question : Comment structurer les liens fournisseurs/catégories et utilisateur/catégories?
De ce que j'ai pu lire sur les SGBD je pense à un modèle de type :
table Fournisseur_vs_category
FournisseurID | CategorieID
A|1
A|2
B|6
B|7
table Utilisateur_vs_category
UtilisateurID | CategorieID
u1 | 1
u1 | 7
u2 | 4
u2 | 6
Néanmoins j'ai pensé également au modèle type CSV ...
table Fournisseur_vs_category
FournisseurID | CategorieList
A| 1,2,3
B| 6,7
table Utilisateur_vs_category
UtilisateurID | CategorieList
u1 | 1,7
u2 | 4,6
...mais celui-ci parait moins stable.
Deuxième question : Comment limiter les fournisseurs visibles par l'utilisateur en fonction des catégories.
Sachant qu'il peut y avoir une centaine de catégorie, comment effectuer un controle efficace et rapide ? Quel type de requête ou fonction serait recommendées.
D'avance merci pour vos éléments de réponses.
Loïc
Partager