【发布时间】:2026-02-13 16:55:02
【问题描述】:
这是一个项目。我正在为办公室的不同类型的记录建立一个数据库。有一个表收集了这些记录表的所有主键。所以,我需要一个引用这些表的外键。我迷路了。我问了我非常忠实的朋友谷歌,但我不明白一些可能的答案。
这是我想出的(表的名称不是他们的真实姓名,只是希望它在这里是通用的)。
编辑:我正在使用 Postgres
记录表:
recordId -> references record1 id,record2 id,record2 id
docId -> identifies what kind of record it is
filingDate
记录1:
id
attribute2
attribute3
记录2:
id
attribute2
attribute3
记录3:
attribute2
attribute3
实际上,Record1、Record2 和 Record3 各有 30 多列(想象一下出生证明,例如)
RecordsTable 将显示给用户。只有当用户需要编辑某些内容时才会显示record1-3。
我想,我会让记录 1-3 引用记录表,但这对用户来说会很麻烦,因为他/她需要先在记录表中输入,而这不是记录表的用途。只是为了显示在办公室归档的所有记录的摘要,因为一次显示所有这些是不好的。
如果有任何不清楚的地方,请告诉我,以便我进行更多解释。 提前致谢
【问题讨论】:
-
RecordsTable是否需要存在。在单个记录表(和任何公共列)之间执行UNION ALL的视图不会更好地服务于目的吗? -
+1 @Damien_The_Unbeliever;在所有记录表中都有一个唯一的 ID,它会很快并且查询起来更简单。
-
@Ben - 假设您添加一列,例如
TableName,那么TableName和Id的组合应该是唯一的,无需进一步努力。 -
@Damien_The_Unbeliever,我没有考虑过。它假设您在查询时知道记录应该来自哪个表,但是实现起来要简单得多...
-
所以,我真的必须合并所有。它是否对运行时有影响,因为正如我所说,它将包含 30 或更多列和每个表的数千条记录,然后我将按归档日期排序?编辑:我没有看到短语“common columns”。好的,是的,那真的很容易
标签: sql postgresql foreign-keys multiple-tables