在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),
        . . .
    );