Ограничение отображаемых записей на основе учетной записи "Привилегии" - PullRequest
0 голосов
/ 24 сентября 2019

Для начала у меня есть следующие таблицы:

Логины

id | Username    | Active
-------------------------
 1 | test1       | Yes
 2 | test2       | No
 3 | test3       | Yes

MasterAccounts

id | MasterName  | Active
-------------------------
 1 | Master1     | Yes
 2 | Master2     | No
 3 | Master3     | Yes

Итак, я пытаюсь выполнить следующее,Каждая запись в каждой таблице в базе данных связана с MasterAccount.Более или менее, это приложение будет использоваться несколькими компаниями, поэтому каждая компания должна видеть только записи, относящиеся к их бизнесу.Для этого я связал каждую запись в базе данных с MasterAccountID.Это достаточно просто, если пользователю 'test1' нужно только просматривать записи для 'Master1'. Я бы просто добавил столбец в таблицу логинов, связывающий логин с главной учетной записью.Мое затруднение заключается в учетных записях, которые будут иметь доступ к нескольким основным учетным записям.Как можно структурировать схему или добавить дополнительные таблицы (группы пользователей?) Для обработки, если «test1» нужна была возможность доступа к записям «Master1» и «Master3».

Моя первая идея состояла в том, чтобы иметь пользователятаблица групп, в которой указываются все комбинации MasterAccounts и присваивается каждой комбинации идентификатор, связанный с учетной записью пользователя.

Моя вторая идея заключается в добавлении еще одного столбца в таблицу логинов, который будет просто объединенным.Строка всех MasterAccountID, к которым у них есть доступ.Когда пользователь входит в веб-приложение, проанализируйте эту строку, чтобы получить все идентификаторы, к которым можно получить доступ, и перейдите оттуда.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...