Схема базы данных для иерархического представления пользователей и ролей - PullRequest
1 голос
/ 02 марта 2010

Я ищу общую схему базы данных с открытым исходным кодом для базового входа в систему и управления пользователями с ролями.

Пользователи: принадлежат к бизнес-единицам, которые принадлежат клиентам.

Пользователи имеют роли - менеджер, региональный менеджер, менеджер сайта, работник и т. Д. Пользователи могут иметь несколько ролей в зависимости от бизнес-единицы и нескольких бизнес-единиц.

Бизнес-единицы принадлежат Клиентам. Бизнес-единицы могут содержать другие бизнес-единицы (Регион содержит другие регионы, содержащие бизнес-единицы).

Особенности: описать поведенческие объекты в системе. Функции назначаются Пользователям, или Ролям, или обоим, а также Бизнес-единицы и / или Клиенты имеют функции, активные в системе.

Скажем, например, что это система учета и имеет такие функции, как кредиторская задолженность, дебиторская задолженность, отчеты, главная книга и т. Д. В зависимости от того, что активно для клиента / бизнес-единицы / роли / пользователя в игре, и что видит пользователь эта активная матричная иерархия.

Кто-нибудь имеет ссылку на схему, подобную этой, которая отвечает этим основным требованиям? Бонус, если он имеет код для веб-интерфейса (логин пользователя, управление для пользователей, регионы, роли и т. Д.). Net C # предпочтителен, но я могу перевести.

Ответы [ 2 ]

1 голос
/ 02 марта 2010

Насколько сложно реализовать это в базе данных SQL? Есть много дизайнов, которые будут работать, но если вы ищете что-то готовое, то, что вы описываете, это LDAP , к тройнику. Это просто описывает протокол, но есть много различных реализаций с открытым исходным кодом, включая Apache Directory Server и OpenLDAP . В Википедии имеется обширный список программного обеспечения LDAP .

.

Это что-то, чтобы рассмотреть. Если вам необходимо тесно интегрировать это с другой базой данных SQL, обеспечить ссылочную целостность для пользователей и т. Д., Это может не сработать для вас. Но если вы ищете что-то общее и расширяемое, это может быть путь. Вы обнаружите, что большинство баз данных членов / ролей, например, созданных Инструментом регистрации SQL Server ASP.NET , не являются иерархическими, потому что свободные иерархии довольно сложны.

Если вам необходимо вложить произвольное количество бизнес-единиц, то управление всеми правилами и переопределениями не является тривиальной задачей. Именно поэтому у нас есть иерархические протоколы каталогов.

(Примечание. Если вы уже находитесь в среде Microsoft, то Active Directory будет очевидным выбором; это не Open Source, но, вероятно, это наиболее надежный и хорошо поддерживаемый сервер каталогов.)

0 голосов
/ 02 марта 2010

Не совсем то, что вы ищете, но начало:

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

Вы смотрели на членство в ASP.NET? Есть скрипт, который создает все объекты в вашем каталоге .net. Если вы создаете веб-сайт со значениями по умолчанию в Visual Studio, есть инструмент администратора веб-сайта для управления пользователями.

...