ERD Многопользовательский уровень доступа под одной учетной записью - PullRequest
0 голосов
/ 29 июня 2011

В настоящее время у меня есть следующий дизайн базы данных

Пользователь - это физическое или юридическое лицо. Как расширить структуру базы данных, чтобы в рамках одной учетной записи бизнес мог предоставлять многопользовательский доступ?

Пример: компания может захотеть предоставить доступ к своей панели управления для доступа бухгалтеру, разработчику и т. Д. ... Разработчик должен иметь возможность просматривать приложения и управлять ими только тогда, когда бухгалтер может просматривать / загружать транзакции и т. Д. ...

USER
Id
Name
Username
Password
...




PERSONAL_INFO
UserId (PK-FK)
FirstName
MiddleName
LastName
....


BUSINESS_INFO
UserId (PK-FK)
BusinessName
....

Будет ли это сделать?

USER_ACCESS?
Id
BusinessUserId 
GrantedUserId

USER_PERMISSION
Id
UserAccessId
PermissionId

PERMISSION
Id
Name

1 Ответ

0 голосов
/ 29 июня 2011

я думаю, что лучше добавить сущность BUSINESS_INFO и атрибут BusinessInfoId (внешний ключ к таблице BUSINESS_INFO) в таблицу USER. Таблица BUSINESS_GROUP будет иметь первичный ключ BusinessInfoId (типа int, например)

USER
UserId
BusinessInfoId (FK)
Name
Username
Password
FirstName
MiddleName
LastName
...

BUSINESS_INFO
BusinessInfoId (PK)
BusinessName
....

обратите внимание, таблица PERSONAL_INFO является избыточной. его поля должны быть нормализованы в таблице USER

...