Предложение по разработке базы данных SQL: Наименование таблицы базы данных - PullRequest
1 голос
/ 15 января 2010

Мне нужно создать таблицу и сохранить SID Active Directory , представляющие пользователя или группу .

Как бы вы назвали категорию, представляющую как пользователя, так и группу?

Редактировать 1.

Таблица будет содержать четыре столбца: идентификатор (PK), имя SID, значение SID и еще один столбец для типа SID (0 для пользователя, 1 для группы).
Пожалуйста, предложите имя таблицы, а не только имена столбцов.

Ответы [ 3 ]

3 голосов
/ 15 января 2010

Active Directory использует термины «принципал» или «участник безопасности» для обоих. Это также включает компьютеры.

Вот графическое изображение из статьи MSDN Управление принципами безопасности каталогов в .NET Framework 3.5 , показывающее иерархию.

alt text
(источник: microsoft.com )

Итак, я бы назвал свою таблицу Principals и у вас были три упомянутых вами столбца:

  • PrincipalName (строка)
  • SID (строка или двоичный код)
  • PrincipalType (0 для пользователя, 1 для группы)
0 голосов
/ 15 января 2010

От самого многословного к наименьшему:

  • ActiveDirectorySecurityIdentifiers
  • ActiveDirectorySIDs
  • ADSIDs

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

0 голосов
/ 15 января 2010

Когда мне недавно пришлось это сделать (связав таблицу пользователей БД с учетными записями AD), я просто назвал столбец ADSID.

Я нашел, что это имеет смысл для нас, так как мы запрашивали с помощью DirectorySearcher, и имя этого свойства в базе данных LDAP - objectSid, поэтому наши запросы выглядели так:

deSearch.Filter = "(&(objectSid=" + ADSID + "))";

Хотя, когда я вырезал этот код из моего проекта, мне стало интересно, может быть, ObjectSid тоже подойдет для хорошего столбца?

Что касается наименования таблицы, надеюсь, вы храните здесь дополнительную информацию помимо деталей AD? В противном случае, почему вы дублируете базу данных AD?

Если вы храните дополнительную информацию, вам следует присвоить таблице имя в соответствии с тем, какой домен / бизнес-объект моделируется таблицей.

Как я уже говорил, я хранил данные для пользователей, поэтому моя таблица называлась просто [Пользователи].

Наконец - возможно, вам было бы полезно нормализовать это в [Группы] и [Пользователи] таблицы?

...