我想知道如何在数据库中最好地表示以下情况。
您有一个角色表。只有几个:[经理,股票,出纳,默认]。员工和商店之间存在多对多关系。一个商店可以有许多雇员,一个雇员可以在许多商店工作。此外,员工在与之关联的每个门店中只能有一个角色。
如果下面的模型是正确的方式来模拟这些表?有更好的办法吗?
CREATE TABLE EmployeeStore
(
Id
StoreId
EmployeeId
EmployeeRoleId
)
CREATE TABLE Store
(
Id
Name
)
CREATE TABLE Employee
(
Id
...
)
CREATE TABLE Role
(
Id
...
)
1条答案
按热度按时间iibxawm41#
通常,当存在多对多关系时,请记住,您必须为该“多对多”关系创建一个新表,两个表的主键在那里用作外键,而这两个表的组合在新表中用作主键。让我举个例子来说明:
假设我们有一张table
STUDENTS
具有不同的属性,比如student_id(pk), Student_name
还有第二个表名为subject
具有不同的属性,比如subjectCode(pk), subject_faculty, subject_duration
等这两个表之间的关系是多对多的,因为一个学生可以注册多个科目,一个科目可以有多个学生,对于这种情况,我们制作了一个新的第三个表
StudentsSubject
有student_id
以及subjectCode
由于现有表中的外键以及这两个属性的组合充当了该表的主键,因此您可以研究它以了解更多详细信息。