|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2006 Messages : 2 ![]() |
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 |
|
|
00
|
|
|
#2 | ||
|
Inactif
Inscription : décembre 2003 Messages : 1 946 ![]() |
Question 1
Première solution : rien à redire.Question 2 Code :
|
||
|
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() Inscription : juin 2006 Messages : 2 ![]() |
Merci Médiat
Dans cette méthode l'idée est "d'isoler" un jeu d'enregistrements valides pour cette utilisateur, puis sur cette base de sélectionner les autres données visibles (ie: nom du fournisseur, contrats ...) De fait l'appel à ce jeu d'enregistrement va être très fréquent et je pensais créer un User Defined Function de type : Code :
(nb: table_Fournisseurs contient les données fournisseurs avec une clé FournisseurID ) Code :
Merci. Loïc |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com