正确的关系数据库建模方法

Phi*_*ipe 1 database inheritance relational

为了解释我的问题,我将举一个简单的例子:

我的数据库有三个表:

[positions]
 - position_id INT
 - position VARCHAR

[employees]
 - employee_id INT
 - position_id INT - FK
 - name VARCHAR
 - birth_date DATE

[vehicles]
 - vehicle_id INT
 - model VARCHAR
 - year VARCHAR
 - color VARCHAR

问题是我必须将一辆车与一名员工联系在一起,该员工在公司中的位置是"司机",并且只在这种情况下.

我尝试使用继承并创建另一个名为"Driver"的表,其中一个ForeignKey与一个员工关联(1-1关系),但我无法使其工作,因为在编程阶段我将不得不手动验证是否选中position id(在HTML select元素中)是"Driver"的id.我认为这不是一个好的编程实践.

总之,我想知道在不影响关系数据库或编程的情况下是否还有其他方法可以做到这一点.

提前致谢!抱歉英语不好,这不是我的主要语言.我希望你能够明白.

Ram*_*oni 5

这是一项业务规则 - "只有位置=驾驶员的员工才能与车辆相关联".业务规则通常在编程中实现,这不是一个坏习惯.编程用于编写业务逻辑.通常,在开发任何应用程序时,您将获得大量此类实例,这些实例无法在数据库级别实现.

但是,如果您仍希望在数据库级别控制此值,则可以使用触发器并在插入/更新级别检查此验证.