0

在数据库中,我有一个用户名表和一个权限表。我还有一个中间表,可以将用户分配到一个或多个司法管辖区。

user table
--------------
userID
first_name
jurID

jurisdiction table
-----------------
jurId
region

user_jurisdiction
------------------
userID 
jurID

这将导致类似:

 user_jurisdiction
    +--------+-------+
    | userID | jurID |
    +--------+-------+
    |      6 |     2 |
    |      6 |     3 |
    |     11 |     2 |
    |     12 |     1 |
    +--------+-------+

对于拥有超过 1 个管辖区的用户,是否可以重复 userdID 行?或者如果不使用额外的 JurID 列并将它们设置为 null 会更好吗?如:

user_jurisdiction
+--------+-------++--------+-------+
| userID | jurID |  jurID | jurID  |
+--------+-------++--------+-------+
|      6 |     2 |       3|    null|
|     11 |     2 |    null|    null|
|     12 |     1 |    null|    null|
+--------+-------+--------+--------+
4

1 回答 1

1

您有一张user_jurisdiction表,因为您在用户和司法管辖区之间存在多对多关系。

因此,user_jurisdiction为单个用户输入多行,每个管辖区一行:

6   2
6   3
11  2
12  1

以你为例。

UserJurisdictionId此外,您应该在该表中包含自动递增。每个表都有一个主键是个好主意。

And, you can remove user.jurID from the user table. All information about jurisdictions should be in user_jurisdictions. You would use a join to get the jurisdiction information for a particular user.

于 2013-03-30T12:20:53.590 回答