SQL数据库设计建议:命名数据库表

时间:2010-01-14 21:25:12

标签: sql database naming

我必须创建一个表并存储代表用户 Active Directory SID

您如何命名代表用户和群组的类别?

编辑1.

表格将包含四列:ID(PK),SID的名称,SID的值以及SID类型的另一列(用户为0,组为1)。
请建议表名,而不仅是列名。

3 个答案:

答案 0 :(得分:3)

Active Directory对两者使用术语“主体”或“安全主体”。这还包括计算机。

以下是MSDN文章Managing Directory Security Principals in the .NET Framework 3.5中显示层次结构的grahpic图像。

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

所以我可能会打电话给我的表Principals,并提到你提到的三个栏目:

  • PrincipalName(字符串)
  • SID(字符串或二进制)
  • PrincipalType(用户为0,组为1)

答案 1 :(得分:0)

当我最近不得不这样做(将数据库用户表链接到AD帐户)时,我只是将列命名为ADSID。

我发现这对我们来说很有意义,因为我们使用DirectorySearcher进行查询,并且LDAP数据库中该属性的名称是objectSid,所以我们的查询看起来像:

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

虽然,当我从我的项目中剪切粘贴代码时,我想知道objectSid是否也可能是一个好的列名?

至于命名表格,我希望您在此处存储除AD详细信息之外的其他信息?否则,为什么要复制AD数据库?

如果要存储其他信息,则应根据表格建模的域/业务对象命名表。

正如我所说,我正在为用户存储数据,所以我的表只是简称为[用户]。

最后 - 或许您可以将这种情况归纳为[Groups]和[Users]表格吗?

答案 2 :(得分:0)

从最详细到最少:

  • ActiveDirectorySecurityIdentifiers
  • ActiveDirectorySIDs
  • ADSIDs

良好实践规定表名为复数,名称应表示和描述表的内容。根据您的舒适程度,上述任何一项都应该做得很好。