我有一个名为 Employee
的表,其中包含 ID
、Fname
、Lname
、dateEmployed
、Program
、fieldOfStudy
、Salary
、jobTitle
和 JobDescription
列。我需要对其进行标准化,但我不确定该怎么做。那么我应该如何规范化它呢?
这是我尝试过的
我创建了两个表 Employee
和 Job
如下所示,并在 中引用了
表。Job
表中的 jobId
列员工
这是员工表
CREATE TABLE EMPLOYEE(
Id int primary key identity,
FName nvarchar(50),
LName nvarchar(50),
dateEmployed Date,
jobID int foreign key references job(jbId)
);
这是作业表
CREATE TABLE Job(
jobId int primary key identity,
Title nvarchar(200),
program nvarchar(30),
salary float,
fieldOfStudy nvarchar(50)
JobDescription nvarchar(max)
);
我的问题只是关于规范化
,而不是关于sql 查询
最佳答案
您的问题实际上分解为:工作与员工之间的关系是什么(您没有彻底解释)。可能的情况是:
1-N :如果每个员工都有一份工作并且多个员工可以有相同的工作,那么您的设置有两个表和一个外键在 employee to job 就可以了
1-1 :如果每个员工都有一份工作,并且每个工作都属于一个员工,那么您不需要两个表:您可以将所有内容都塞入员工表
N-N :如果一个员工可以有多个工作,每个工作可以属于多个员工,那么您需要创建第三个表,一个桥接表来表示这种关系,其中每一行将存储一个外键指向 jobs 表,另一个外键指向 employees 表
关于sql - 下表应该如何归一化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54277799/