2010-03-02 9 views
1

Je suis à la recherche d'un schéma de base de données open source générique pour une connexion de base et une gestion des utilisateurs avec des rôles.Schéma de base de données pour la représentation hiérarchique des utilisateurs et des rôles

Utilisateurs: appartiennent à des unités commerciales qui appartiennent à des clients.

Les utilisateurs ont des rôles - Gestionnaire, directeur régional, directeur du site, etc. travailleurs Les utilisateurs peuvent avoir plusieurs rôles qui dépendent de l'unité d'affaires et plusieurs unités d'affaires ..

unités commerciales appartiennent aux clients. Les unités commerciales peuvent contenir d'autres unités commerciales (la région contient d'autres régions contenant des unités commerciales).

Caractéristiques: décrire des entités comportementales dans le système. Les fonctions sont attribuées aux utilisateurs, aux rôles ou aux deux, et les unités fonctionnelles et/ou les clients ont des fonctionnalités actives dans le système. Supposons par exemple que ce soit un système de comptabilité, et qu'il dispose de fonctionnalités telles que les comptes fournisseurs, les comptes débiteurs, les rapports, les comptes généraux, etc. en fonction de ce qui est actif pour le client/l'unité commerciale/le rôle/l'utilisateur. est cette hiérarchie de matrice active.

Quelqu'un at-il une référence à un schéma similaire à celui-ci qui répond à ces exigences de base? Bonus s'il a du code pour une interface web (login utilisateur, gestion pour les utilisateurs, régions, rôles etc.) .Net C# préféré, mais je peux traduire.

+0

Looks comme un problème de devoirs. Puis-je obtenir votre diplôme si je résous cela? – dar7yl

+1

certainement pas fait ses devoirs, essayant juste de faire un pas en avant sur quelques pensées de conception. PS, j'ai enseigné des cours de CS il y a environ 25 ans. :) –

Répondre

0

Pas exactement ce que vous cherchez, mais un début:

http://www.databaseanswers.org/data_models/user_identity_management/index.htm

Avez-vous un coup d'oeil à l'adhésion ASP.NET? Il y a un script qui crée tous les objets dans votre répertoire .net. Si vous créez un site Web avec les valeurs par défaut dans Visual Studio, il existe un outil d'administration de site Web pour gérer les utilisateurs.

+0

Eh bien, c'est un début, verra quelles autres options apparaissent le long de ces lignes. Je vous remercie.Peut-être une combinaison de ces deux répondra-t-elle à de nombreux besoins à ce niveau que je prévois. –

1

Quelle est l'exigence de l'implémentation dans une base de données SQL? Il y a beaucoup de modèles qui fonctionneront, mais si vous cherchez quelque chose sur le plateau, alors ce que vous décrivez est LDAP, à un tee-shirt. Cela décrit simplement le protocole, mais il existe de nombreuses implémentations open-source, y compris Apache Directory Server et OpenLDAP. Wikipedia a un vaste list of LDAP software.

C'est quelque chose à considérer. Si vous devez l'intégrer étroitement avec une autre base de données SQL, appliquer l'intégrité référentielle pour les utilisateurs, etc., cela peut ne pas fonctionner pour vous. Mais si vous cherchez quelque chose de générique et d'extensible, c'est peut-être le chemin à parcourir. Vous constaterez que la plupart des bases de données d'appartenance/de rôle, telles que celles créées par le ASP.NET SQL Server Registration Tool, ne sont pas hiérarchiques, car les hiérarchies lâches sont compliquées.

Si vous devez imbriquer des nombres arbitraires d'unités commerciales, la gestion de toutes les règles et des remplacements n'est pas une tâche triviale. C'est exactement pourquoi nous avons des protocoles de répertoires hiérarchiques.

(Remarque - Si vous êtes déjà dans un environnement Microsoft puis Active Directory serait le choix évident;. Ce n'est pas Open Source, mais il est probablement le plus robuste et bien prise en charge de tout serveur d'annuaire)

+0

Vraiment à la recherche de l'empreinte SQL et la gestion - il est vraiment plus complexe que je décris, mais à la recherche d'un lieu de départ. L'accès est important, mais la gestion des couches de gestion formées par la hiérarchie est plus nécessaire. –

+0

Malheureusement, la gestion des hiérarchies va bien au-delà de la simple création d'un schéma de base de données; Il y a toutes sortes de requêtes hiérarchiques, de rapports, de règles, etc. Généralement, vous cherchez une sorte d '"héritage". C'est tout sauf "basique". C'est pourquoi il existe des systèmes entiers qui remplissent ces fonctions. Si vous ne pouvez pas utiliser cela, il semble que vous compreniez déjà les relations, modélisez simplement la relation hiérarchique principale (unités d'affaires) en utilisant l'un des modèles communs: liste d'adjacence, ensemble imbriqué, chemin matérialisé ou hierarchyid. – Aaronaught

Questions connexes