在SQL中创建表的继承

我想创建包含大量相似信息(名字,名字等)的Worker和Student表,因此我将提取另一个名为Person的抽象表,该表将包含Worker和Student表的一般信息。

哪种方法最好?

我还需要ID是唯一的,即在Worker表和Student表中没有相同的ID。

评论
自恋狂
自恋狂

Create a table persons with all the combined information and a person_id.

Create two additional tables, workers and students. The primary keys for these tables are foreign keys to the persons table:

create table students (
    student_id int primary key references persons (person_id),
    . . .
);

create table workers (
    worker_id int primary key references persons (person_id),
    . . .
);
点赞
评论