首页 > 解决方案 > 根据另一个表检查列条件

问题描述

我正在创建一个培训数据库,第一个表(员工表)有员工 id(Int)、isTrainer(Bool)..等。第二个表(培训记录)有受训者id(Int),受训者id(Int)..等。Trainee id 和 trainer id 参考员工 id。但培训师 id 只能是 isTrainer(Bool = true) 的员工。我该如何做到这一点?

CREATE SCHEMA training;
go

CREATE TABLE training.employee(
    employee_id INT IDENTITY(1,1) PRIMARY KEY,
    employee_isTrainer BOOLEAN;
);

CREATE TABLE training.record(
    training_id INT IDENTITY(1,1) PRIMARY KEY,
    training_trainee INT NOT NULL;
    training_trainer INT NOT NULL;
    FOREIGN KEY (training_trainee) REFERENCES training.employee(employee_id);
    FOREIGN KEY (training_trainer) REFERENCES training.employee(employee_id);
)

我正在创建一个带有下拉列表的前端,供用户查询或添加新记录。预期的结果应该是培训师下拉菜单应该只显示 isTrainer 的员工。

标签: sqlsql-server

解决方案


推荐阅读