2010-01-14 4 views
1

я должен создать таблицу и сохранить УЛМИ, Служба каталогов Active Directory, представляющим пользователя или Группы.SQL проектирование базы данных предложение: Присвоение имя таблицы базы данных

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

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

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

ответ

3

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

Вот grahpic изображение из статьи MSDN Managing Directory Security Principals in the .NET Framework 3.5, которая показывает иерархию.

alt text http://i.msdn.microsoft.com/cc135979.fig02(en-us).gif

Так что я бы, вероятно, назвать свою таблицу Principals и есть три столбца, которые вы упомянули:

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

После прочтения комментариев, а затем обсуждения на http://stackoverflow.com/questions/7662, я придерживаюсь единственной формы имен/столбцов имен. Мне особенно нравится следующий аргумент: http://stackoverflow.com/questions/7662/7678#7678 – MiniMe

+1

Наличие таблиц 'Principal (ID, Name, SID, TypeID)' и 'PrincipalType (ID, Description)' следующий запрос кажется естественным: 'SELECT Principal.Name, Principal.SID, PrincipalType.Description FROM Principal INNER JOIN PrincipalType ON PrincipalType.ID = Principal.TypeID' – MiniMe

0

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

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

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

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

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

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

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

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

+0

Теперь я переношу данные из двух таблиц (пользователя и группы) в одну таблицу как SID уникальны, поэтому я ищу общую категорию, описывающую оба. – MiniMe

0

Из наиболее многословным наименее:

  • ActiveDirectorySecurityIdentifiers
  • ActiveDirectorySIDs
  • ADSIDs

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

+0

Я читаю дискуссию между использованием единственного числа против множественного числа при названии таблиц здесь: http://stackoverflow.com/questions/7662. Лично я использую единственную форму. – MiniMe

+0

Вы можете использовать все, что захотите, но стандарты ISO соответствуют множественной форме для таблиц. Взгляните на ISO 11179-5 «Принципы именования и идентификации» http://metadata-standards.org/11179/#11179-5 –

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