OVH Cloud OVH Cloud

modélisation de droits sur une hierarchie

4 réponses
Avatar
Cymryr
Bonjour
J'ai besoin popur une application de modéliser des tables de droits pour
acceder a differents niveau d'une hierarchie

La hierarchies est constituée de cette maniere :
5 niveau séparés en 5 tables séparées
Chacune des table a un ID incremental et c'est cet ID qui fait office de
clef primaire
le niveau deux reference le niveau par une clef etrangere sur cet ID

un user peux avoir acces a un element de niveau 2 plus 3 elements de niveau
4 par exemple
evidement si il a acces a un élément de niveau 2 il a accès a tout ses
enfants.

Pour l'instant je suis parti pour avoir 5 tables de droits (1 par niveau)
et gerer la coherence dans mes proc stock.

Mais je me disait egalement que je ne dois pas etre le premier a avoir le
probleme et j'aurais aimé savoir si il n'y avait pas une manière "standard"
de faire?

Merci d'avance

4 réponses

Avatar
Fred BROUARD
si tu nous parlais fonctionnel et non abscon ?

Donne nous par exemple des explications et surtout des exemples !

A +

Cymryr a écrit:
Bonjour
J'ai besoin popur une application de modéliser des tables de droits pour
acceder a differents niveau d'une hierarchie

La hierarchies est constituée de cette maniere :
5 niveau séparés en 5 tables séparées
Chacune des table a un ID incremental et c'est cet ID qui fait office de
clef primaire
le niveau deux reference le niveau par une clef etrangere sur cet ID

un user peux avoir acces a un element de niveau 2 plus 3 elements de niveau
4 par exemple
evidement si il a acces a un élément de niveau 2 il a accès a tout ses
enfants.

Pour l'instant je suis parti pour avoir 5 tables de droits (1 par niveau)
et gerer la coherence dans mes proc stock.

Mais je me disait egalement que je ne dois pas etre le premier a avoir le
probleme et j'aurais aimé savoir si il n'y avait pas une manière "standard"
de faire?

Merci d'avance





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Cymryr
Un exemple plus parlant :
Une hierarchie de sites physiques

Le niveau 5 est un batiment
Le niveau 4 est un site
le niveau 3 est un regroupement de site par leur fonction
le niveau 2 est entité juridique
le niveau 1 est une holding financiere

exemple :

(1)Holding----(2)Compagnie france------(3)Telephonie------(4)Site bretagne
1-------(5)Batiment Soudure
| | |
|______(6)Batiment packaging
| | |____(7)Site
Alsace 1---------(8)Batiment Assemblage
| |
|______(9)Batiment conception
| |_________(10)Routeur---------(11)Site
PACA1---------(12)Batiment Composants
|
|______(13)Batiment Conception
|_(14)Compagnie Allemagne-----(15)Cable------(16)Site
cologne 1--------(17)Batiment fonderie

|______(18)Batiment Stockage


Donc toute ces données sont eclatée en 5 table
Et je voudrais modéliser un stockage qui me permette de definir les droits
suivants
1 Utilisateur est patron de l'allemagne donc il a le droit a 14 et tout ses
enfants
Pour des raisons gégraphique il a aussi le droit de voir tout 7 et ses
enfants
Mais il a une double responsabilité et il est aussi patron des bureau
d'etudes du group donc il a le droit aussi a 13

voila j'espere que c'ets plus parlant
Aujourd'hui je suis partie poour une table de stockage de droits par niveau
mais ce n'est pas evident que ce soit la bonne solution
Avatar
Fred BROUARD
1) il serait plus intéressant pour des raisons de performance de modéliser
toutes ces données dans une seule table en mode intervallaire.
A lire :
http://sqlpro.developpez.com/cours/arborescence/

2) il conviendrait de gérer un système de droits au niveau fonctionnel (code
client) car ce que vous voulez faire ne correspond nullement à la gestion des
privilèges sur les ojbets de la base de données. En effet, la notion de droits
n'existe pas en SQL, seule la notion de privilège, c'est à dire le fait de
pouvoir exécuter telle ou telle commande sur tel ou tel objet est possible, et
non sur la sémantique (c'est à dire le contenu) des objets.
A lire :
http://sqlpro.developpez.com/cours/sqlaz/dcl/

A +



Cymryr a écrit:
Un exemple plus parlant :
Une hierarchie de sites physiques

Le niveau 5 est un batiment
Le niveau 4 est un site
le niveau 3 est un regroupement de site par leur fonction
le niveau 2 est entité juridique
le niveau 1 est une holding financiere

exemple :

(1)Holding----(2)Compagnie france------(3)Telephonie------(4)Site bretagne
1-------(5)Batiment Soudure
| | |
|______(6)Batiment packaging
| | |____(7)Site
Alsace 1---------(8)Batiment Assemblage
| |
|______(9)Batiment conception
| |_________(10)Routeur---------(11)Site
PACA1---------(12)Batiment Composants
|
|______(13)Batiment Conception
|_(14)Compagnie Allemagne-----(15)Cable------(16)Site
cologne 1--------(17)Batiment fonderie

|______(18)Batiment Stockage


Donc toute ces données sont eclatée en 5 table
Et je voudrais modéliser un stockage qui me permette de definir les droits
suivants
1 Utilisateur est patron de l'allemagne donc il a le droit a 14 et tout ses
enfants
Pour des raisons gégraphique il a aussi le droit de voir tout 7 et ses
enfants
Mais il a une double responsabilité et il est aussi patron des bureau
d'etudes du group donc il a le droit aussi a 13

voila j'espere que c'ets plus parlant
Aujourd'hui je suis partie poour une table de stockage de droits par niveau
mais ce n'est pas evident que ce soit la bonne solution





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Cymryr
"Fred BROUARD" wrote in message
news:
1) il serait plus intéressant pour des raisons de performance de modéliser
toutes ces données dans une seule table en mode intervallaire.
A lire :
http://sqlpro.developpez.com/cours/arborescence/


Merci ce systeme me conviendrait parfaitement a une exception pres !
Je n'ai pas le meme stockage a chaque niveau, chaque niveau a des attributs
differents et a part multiplier les colonnes je ne vois pas de solutions

Serait il possible de faire une table d'attributs avec par exemple une
contrainte sur la clef etrangere et le niveau?
PAr exemple cette table peut avoir dans ses clef etrangere que des id du
niveau 3, ou que des feuilles?

2) il conviendrait de gérer un système de droits au niveau fonctionnel


(code
client)


J'en avait bien l'intention et c'ets pour ca que je recherche la bonne
modelisation : etre sur de moi avant de lancer le codage.
D'ailleur la vue XML c'est du pure bohneur pour faire une gestion de droits