“用户”和“用户类型”之间的表的SQL表名是什么?

时间:2010-05-23 12:16:47

标签: sql-server naming-conventions

我的数据库中有两个表:

  • 用户:包含用户信息
  • UserTypes:包含用户类型的名称(学生,教师,专家) - 我无法将其重命名为“类型”,因为我们有一个具有此名称的表格

用户和UserTypes之间的关系多对多..因此我将创建一个具有UserTypeID(FK)的UserID(FK)的表,但我试图找到该表的最佳名称...是否有任何建议?

6 个答案:

答案 0 :(得分:4)

我建议您遵循编码指南的任何命名约定 - 您确实拥有它? - 表示这些类型的表。如果您没有指南,那么这样的事情可能有效:

Users_UserTypes

答案 1 :(得分:1)

我认为一个好的做法就是把它称为“Users_UserTypes”,可能以你为此目的发明的一些传统代码字为前缀。无论如何,这就是我的申请中发生的事情。

答案 2 :(得分:1)

UserTypes表中还有其他“type”吗?有几个条目?如果只有少数,并且它不包含任何其他数据,那么我将简单地对该表进行非规范化,并且根本没有单独的连接器。

那是:

Users:

  ID       |  First Name      |  Last Name
-----------+------------------+--------------------
 123       | John             | Smith
 456       | Jane             | Doe

UserTypes:

  UserID   |  Type
-----------+----------------
 123       | student
 123       | specialist
 456       | teacher

“类型”列不必是字符串,它可以是映射到代码中的枚举或您喜欢的任何内容的整数。

国际海事组织,没有太多的事情可以使事情变得非常正常,以至于你总共有500张桌子都在一起......

答案 3 :(得分:1)

另一种方法(除了Users_UserTypes)将是UserTypes_for_Users它有点不那么传统,但恕我直言更容易理解

答案 4 :(得分:1)

User,UserType(我将每个表命名为单数)和... UserTypeMap

答案 5 :(得分:0)

我们对多对多表使用Table1_x_Table2命名约定。

这使事情变得非常清楚,并指出了表格的交叉引用性质: Person_x_Company Package_x_Product User_x_UserType

对于自我关系表,例如员工对经理,我们有一个Person_x_Person表,其中包含“relation_type”和“priority”列,以允许每位员工拥有主要经理和次要经理的多位经理。