sql-员工角色建模

56lgkhnf  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(312)

我想知道如何在数据库中最好地表示以下情况。
您有一个角色表。只有几个:[经理,股票,出纳,默认]。员工和商店之间存在多对多关系。一个商店可以有许多雇员,一个雇员可以在许多商店工作。此外,员工在与之关联的每个门店中只能有一个角色。
如果下面的模型是正确的方式来模拟这些表?有更好的办法吗?

CREATE TABLE EmployeeStore
(
    Id 
    StoreId
    EmployeeId
    EmployeeRoleId 
)

CREATE TABLE Store
(
    Id 
    Name
)

CREATE TABLE Employee
(
    Id 
    ...
)

CREATE TABLE Role
(
    Id 
    ...
)
iibxawm4

iibxawm41#

通常,当存在多对多关系时,请记住,您必须为该“多对多”关系创建一个新表,两个表的主键在那里用作外键,而这两个表的组合在新表中用作主键。让我举个例子来说明:
假设我们有一张table STUDENTS 具有不同的属性,比如 student_id(pk), Student_name 还有第二个表名为 subject 具有不同的属性,比如 subjectCode(pk), subject_faculty, subject_duration
这两个表之间的关系是多对多的,因为一个学生可以注册多个科目,一个科目可以有多个学生,对于这种情况,我们制作了一个新的第三个表 StudentsSubjectstudent_id 以及 subjectCode 由于现有表中的外键以及这两个属性的组合充当了该表的主键,因此您可以研究它以了解更多详细信息。

相关问题