下表应如何规范化?

时间:2019-01-20 15:10:04

标签: sql database

我有一个名为Employee的表,其中有IDFnameLnamedateEmployedProgramfieldOfStudySalaryjobTitleJobDescription列。我需要将其标准化,但是我不确定该怎么做。那我应该如何规范它呢?

这就是我尝试过的

我创建了两个表EmployeeJob,如下所示,并引用了jobId表中Job表的Employee列。

这是Employee Table

CREATE TABLE EMPLOYEE(
    Id int primary key identity,
    FName nvarchar(50),
    LName nvarchar(50),
    dateEmployed Date,
    jobID int foreign key references job(jbId)
);

这是Job Table

CREATE TABLE Job(
    jobId int primary key identity,
    Title nvarchar(200),
    program nvarchar(30),
    salary float,
    fieldOfStudy nvarchar(50)
    JobDescription nvarchar(max)
);

我的问题仅与Normalization无关,sql query

1 个答案:

答案 0 :(得分:1)

您的问题实际上分解为:工作与雇员之间的关系是什么(您没有详细解释)。可能的情况是:

  • 1-N :如果每个员工有一份工作,而几名员工可以有相同的工作,则可以使用两张表和员工中指向工作的外键设置p>

  • 1-1 :如果每个员工都有一个工作,并且每个工作属于一个员工,那么您就不需要两个表:您可以将所有内容填充到employee表中

  • NN :如果一个雇员可以有多个工作,并且每个工作可以属于多个雇员,那么您需要创建第三个表,一个代表该关系的桥表,每行将在工作表中存储一个外键,在雇员表中存储另一外键