创建 2 个具有相同列但没有主键的表

Create 2 tables having same column but not a primary key

(问题仅针对大学项目,因为我坚持要求)

我想在 SQL 服务器中创建 2 个 table,比如说 'table1' 和 'table2' 在同一个数据库中。两者都应该有一列说 'col1' 这不是主键。

那么我应该如何创建它以便当我将数据插入一个 table 时,另一个会自动更新?

注意:所以这是一个大学项目,我们被要求制作一个特定类型的主键,所以引用这不是一个选项,现在我必须有相同的实体在 2 个不同的 table 中,所以以某种方式引用它们是个好主意,有什么想法吗?

例如,en 员工的项目详细信息将具有 his/her empID,而家属的 table 也将具有 empID。但是我不能将它设为主键,因为教授已经定义了它。但是更新一个也应该更新另一个,这有意义吗?

首先在创建 tables 时,要作为外键引用的实体,使其唯一:

表 1:

[SIN] int NOT NULL UNIQUE,

其次,在另一个table中调用[SIN]作为FK,设置更新和删除的条件:

表 2:

[SIN] INT CONSTRAINT [SIN_FK1] FOREIGN KEY REFERENCES Employee([SIN]) ON DELETE SET NULL ON UPDATE CASCADE

这样做,每当您更新或删除表 1 中的记录时,表 2 中的相应记录也会更新。

您可以有两种类型的 parent-child 关系。

  1. 识别关系:这里,child依赖于parent来识别自己。例如。项目要求员工存在。此处,Project 应将其主键的 EmployeeId 部分或将 EmployeeId 作为其主键。如果EmployeeId是project的主键,那么一个员工只能有一个project。
CREATE TABLE Employee
(
  EmployeeId INT,
  EmployeeName VARCHAR(255) NOT NULL,
  PRIMARY KEY(EmployeeId)
)
GO

CREATE TABLE EmployeeProject
(
  EmployeeId INT,
  EmployeeName VARCHAR(255) NOT NULL,
  PRIMARY KEY(EmployeeId),
  FOREIGN KEY (EmployeeId) REFERENCES Employee(EmployeeId),
)
GO
  1. Non-identifying关系:这里,child不依赖于parent来标识自己。例如。可以在没有员工的情况下定义项目。在这里,Project 可以将 EmployeeId 作为外键。如果 EmployeeId 是 NOT NULL 列,则必须有雇员。如果 EmployeeId 是 NULL 列,则不是必须有雇员。
CREATE TABLE Employee
(
  EmployeeId INT,
  EmployeeName VARCHAR(255) NOT NULL,
  PRIMARY KEY(EmployeeId)
)
GO

CREATE TABLE EmployeeProject
(
  EmployeeProjectId INT,
  EmployeeName VARCHAR(255) NOT NULL,
  EmployeeId INT NOT NULL, -- Can be NULL, if it is not mandatory
  PRIMARY KEY(EmployeeProjectId),
  FOREIGN KEY (EmployeeId) REFERENCES Employee(EmployeeId),
)
GO