如何在继承类postgresql上实现外键

Posted

技术标签:

【中文标题】如何在继承类postgresql上实现外键【英文标题】:How to implement foreign key on inheritant class postgresql 【发布时间】:2022-01-17 02:42:00 【问题描述】:

我正在从事一个学校项目,该项目需要基于该 UML 架构实现数据库:

我想知道如何在project 类别中引用Scientifique 类的外键,因为Scientifique 没有主键(它有父类的主键我认为的人员)。

我应该在Scientifique 中添加主键吗?

【问题讨论】:

是的,它必须有一个主键作为外键 【参考方案1】:

这取决于你所说的添加是什么意思。您通常会将抽象模型转换为更具体的数据库模型。在该转换中,您会将外键添加为属性,并最终将它们(基于配置文件)定型为例如«FK»。

或者,您可以在 Erwin(或任何 ERD 工具)之类的东西中创建架构并在那里创建外键。

我会避免将这些信息添加到抽象模型中,因为它会简单地考虑抽象的重要性......

【讨论】:

我的意思是添加一个新列 idScientifique,但这实际上看起来更好(如果可行的话):sql CREATE TABLE personnel(idPersonnel serial PRIMARY KEY, nom varchar(50), prenom varchar(50), date_naissance date, adresse varchar(100), ville varchar(75), code_postal char(5), date_recrutement date); CREATE TABLE scientifique(idPersonnel PRIMARY KEY, grade varchar(20)) INHERITS personnel;

以上是关于如何在继承类postgresql上实现外键的主要内容,如果未能解决你的问题,请参考以下文章

保存产品时出现外键约束错误

在子表 Laravel 中插入数据时出现外键问题

执行全新安装 Piranha CMS 时出现外键约束错误

如何在 PostgreSQL 中添加外键

如何使Doctrine PostgreSQL外键约束DEFERRABLE

postgresql----继承表inherits parent table