如何将员工和用户与另一个表格保持在单独的表格中,从而为他们提供一般帐户ID?

时间:2016-04-15 10:16:25

标签: mysql database

我有两个表,staffusers。以下是表格的缩短版本。 (* = PK,#= FK)

staff { staffID*, username, ... }

users { userID*, username, ... }

我想这样做,以便这些表有一个表格,以一种accountID的方式将它们链接在一起。

我当时认为这将是... ...

accounts { accountID*, accountType, localID# }

......其中localID是;如果帐户来自staffID表,则为staff;如果帐户来自userID表,则为usersaccountType将用于告知帐户来自哪个表格,并且可能包含staffuser的值。

首先关闭 - 这可能是通过这种方式实现的吗?这是一个好主意吗?由于staffusers表都包含字段username,我应该在username表中使用accounts代替accountTypelocalID? (如果staff表中存在username'foo'的记录,那么user表中的username表中就不会有记录富'

其次 - 如果上面的表格是我应该实现的方式,那么我需要添加什么约束才能使其成为accountType& localID是唯一的,因此图1 中的所有示例都将被接受,而图2 中的示例是accountTypelocalID的重复组合|-----------|-------------|---------| | accountID | accountType | localID | |-----------|-------------|---------| | 1 | A | 1 | | 2 | B | 1 | | 3 | A | 2 | | 4 | B | 2 | |-----------|-------------|---------| 会不会?

图1

|-----------|-------------|---------|
| accountID | accountType | localID |
|-----------|-------------|---------|
|     1     |      A      |    1    |
|     2     |      A      |    1    |
|     3     |      B      |    2    |
|     4     |      B      |    2    |
|-----------|-------------|---------|

图2

chart1.Series[0].Points.Add(new Point(x, y));

推理 - 我希望为员工和用户提供这些单独的表,因为我需要基于角色的访问控制,但我希望它只有员工帐户可以拥有的角色和&还有其他角色,只有用户帐户才能拥有。

提前感谢您提供的任何帮助/指导。

1 个答案:

答案 0 :(得分:0)

在员工和用户表中添加accountId,这样就可以完成您的工作。