我有两个表,staff
和users
。以下是表格的缩短版本。
(* = PK,#= FK)
staff { staffID*, username, ... }
users { userID*, username, ... }
我想这样做,以便这些表有一个表格,以一种accountID
的方式将它们链接在一起。
我当时认为这将是... ...
accounts { accountID*, accountType, localID# }
......其中localID
是;如果帐户来自staffID
表,则为staff
;如果帐户来自userID
表,则为users
。 accountType
将用于告知帐户来自哪个表格,并且可能包含staff
和user
的值。
首先关闭 - 这可能是通过这种方式实现的吗?这是一个好主意吗?由于staff
和users
表都包含字段username
,我应该在username
表中使用accounts
代替accountType
和localID
? (如果staff
表中存在username
'foo'的记录,那么user
表中的username
表中就不会有记录富')
其次 - 如果上面的表格是我应该实现的方式,那么我需要添加什么约束才能使其成为accountType
& localID
是唯一的,因此图1 中的所有示例都将被接受,而图2 中的示例是accountType
和localID
的重复组合|-----------|-------------|---------|
| 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));
推理 - 我希望为员工和用户提供这些单独的表,因为我需要基于角色的访问控制,但我希望它只有员工帐户可以拥有的角色和&还有其他角色,只有用户帐户才能拥有。
提前感谢您提供的任何帮助/指导。
答案 0 :(得分:0)
在员工和用户表中添加accountId,这样就可以完成您的工作。