2013-06-05 2 views
1

Я строю таблицу процедур, и мне нужно выяснить способ, чтобы «только что зарегистрированный пользователь» имел доступ к этой процедуре.Хранение массива типа string [] внутри базы данных

Моя первая мысль хранить эту информацию в Certified колонке в таблице, как так 'JohnD', 'JasonD', 'JaneD'. Тогда я мог бы только показать, что процедура, если пользователь вошел в одно из имен пользователей, хранящихся в Certified колонке.

Я собираю пользователей из Active Directory, поэтому у меня нет таблицы пользователей. Я легко имею доступ к их имени пользователя и полному имени и т. Д.

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

Я собираюсь сделать это в хорошем смысле?

ответ

2

Это отношение много-ко-многим. Попробуйте это:

 
Procedure table 
    procedure_id 
    ... other columns in the procedure table 

User Table 
    user_id 
    ... other columns in the user table 

User_to_Procedure table (this is the join table) 
    procedure_id 
    user_id 

положить одну строку в таблице user_to_procedure в комбинации пользовательского доступа может-процедуры-.

Таблица пользователя является необязательной, если у вас есть другой способ идентифицировать пользователя (например, активный каталог). В этом случае активного каталога user_id в таблице соединений - это идентификатор, который вы получаете из активного каталога.

Ссылка на Википедию для join table. Страница wiki ссылается на нее как на таблицу соединений и перечисляет таблицу соединений как синоним.

+0

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

0

Просто потому, что вы получаете пользователей из AD, не означает, что вы не можете иметь пользовательскую таблицу или ссылку на пользователя в таблице процедур. Вы можете заполнять свои записи по требованию, то есть когда пользователь должен получить доступ к чему-либо, связанному с процедурами, вы можете проверить, прошел ли этот пользователь, и затем вы создаете соответствующую запись на лету.

Смежные вопросы