【发布时间】:2013-08-07 04:45:33
【问题描述】:
希望我的解释比标题更清楚。 我有一组文件。每个文件包含可变数量的论文/表格。所以我有一个名为files的表,带有一个fid。
为了简单起见,假设我们只有 3 种不同的形式,每一种都包含自己的数据集。所以我有 3 个表,FormA、FormB 和 FormC,它们的主键分别是 Aid、Bid 和 Cid。
该文件可以包含例如 2 个 A 表格和 1 个 B 表格,或每个表格 1 个,或 3 个 A 表格、2 个 B 表格、2 个 C 表格。你明白了,可变数量的表格,并且可能包含超过 1 个相同类型的表格。
如何在 SQL 中正确表示这种关系?如果重要的话,我正在使用 PostGreSQL。
【问题讨论】:
-
我没有时间写出正确的答案,但这些关键字可能会对您有所帮助:多态关联、不相交的子类型。这在 SO 上被回答了几次,例如:stackoverflow.com/questions/561576/…stackoverflow.com/questions/7947218/…
-
可能会添加一个名为
files的表,其中将包含文件的ID(以及与所有表单相关的任何其他数据),并且只需将每个表单表中的FK 添加到主表。
标签: sql postgresql foreign-keys normalization