DBeaver PostgreSQL 外键数组

问题描述 投票:0回答:1

对于家庭作业,我已经下载了 imdb 数据集,并使用 DBeaver 将其导入到 PostgreSQL 中的新表中。一些表具有外键数组。例如,

name.basics 表包含有关演员的信息

nconst  primaryName birthYear   deathYear   primaryProfession   knownForTitles
nm0000001   Fred Astaire    1899    1987    soundtrack,actor,miscellaneous  tt0027125,tt0053137,tt0050419,tt0072308

在上面,knownForTitles 字段引用 title.basics 表中的主键,该表列出了有关电影的信息。

tconst  titleType   primaryTitle    originalTitle   isAdult startYear   endYear runtimeMinutes  genres
tt0000001   short   Carmencita  Carmencita  0   1894    \N  1   Documentary,Short

我是否能够在knownForTitles 字段中的name.basics 中创建指向title.basics 主键列的外键数组?我尝试设置一个列,其中包含指向 title.basics 主键的 varchar 数组,但出现此错误:

详细信息:关键列“knownfortitles”和“tconst”是不兼容的类型:character Varying[]和character Varying。

我知道通常会使用联结表来处理这样的关系,但对于这个家庭作业,我试图了解是否可以使用包含外键数组的字段来处理这种关系。如果是这样,我该如何设置?

postgresql foreign-keys
1个回答
0
投票

如果您使用标识符数组,则 PostgreSQL 中不能有外键约束。已经有一个补丁来实现该功能,但从未应用过。

以这种方式使用数组不仅会妨碍您获得引用完整性,还会使连接变得复杂且缓慢。您应该避免此类数据模型。

© www.soinside.com 2019 - 2024. All rights reserved.