【发布时间】:2018-12-14 21:56:55
【问题描述】:
我想知道如何最好地在数据库中表示以下情况。
您有一个角色表。只有几个:[经理,股票,收银员,默认]。 员工和商店之间存在多对多的关系。 一家商店可以有很多员工,一个员工可以在很多商店工作。此外,一名员工在他/她关联的每个商店中只能拥有一个角色。
如果下面这些表格的建模方法正确?有没有更好的办法?
CREATE TABLE EmployeeStore
(
Id
StoreId
EmployeeId
EmployeeRoleId
)
CREATE TABLE Store
(
Id
Name
)
CREATE TABLE Employee
(
Id
...
)
CREATE TABLE Role
(
Id
...
)
【问题讨论】:
-
如果一个员工在每个商店只能拥有一个角色,那么在 EmployeeStore 中的 (StoreId, EmployeeId) 上可能存在唯一约束或主键。
-
如果您想在查询中使用 USING 子句,那么也许将这些
id字段重命名为与这些外键相同的名称。
标签: mysql sql sql-server database modeling