SQL两个表并创建一个链接表

Sam*_*Sam 5 sql t-sql sql-server relational relational-database

我有两个表:员工(ID,姓名,地址)和商店(ID,地址),我想记录有关在每个商店工作的人的信息.

我想创建一个名为Employee_List表的新表.我的问题:

1- Employee_List和Employee有一对多的关系,对吧?

2-要存储的Employee_list具有一对一的关系,对吧?

3-如何为Employee_List表定义外键和主键?

在此输入图像描述

Dar*_*ren 11

Employee_list应该具有:

  • employee_listid(INT PK)
  • employee_id(INT FK)
  • store_id(INT FK)

我建议更改表名来表示复合表,即 EmployeeStores.这将允许您的架构可扩展,员工可以在多个商店中工作.

SQL Server:

CREATE TABLE EmployeeStores
(
   EMPLOYEEStoreID   INT IDENTITY,
   EMPLOYEEID INT FOREIGN KEY REFERENCES Employee(employee_id),
   STOREID INT FOREIGN KEY REFERENCES Store(store_id)
)
Run Code Online (Sandbox Code Playgroud)

  • 意识形态的差异并不能保证下注 (6认同)
  • @DarrenDavies是的,我不能保证每个查询引擎都会从中受益 - 但是你不能说没有空间浪费(列表中的每个条目都有至少 4 个字节的人工密钥开销)。您发现第一个创建值用例是一个更糟糕的用例:谁说第一个条目不会被删除,并且会使用人工密钥 1 插入新条目?我的论点来自关系设计的观点 - 顺便说一句,这有点严厉,但当涉及到关系设计中的错误假设时,我很情绪化。 (3认同)
  • 您不需要employee_listid。PK是employee_id,storeid。 (2认同)