在同一表中将主键引用为外键,其中记录的字段值是其他记录的函数

时间:2019-05-28 17:04:02

标签: python database database-design

我有一组数据,其中一半的记录是原始源,另一半具有相同的属性(字段),但是其中一些字段是根据一组原始记录来计算的。

作为一个简化的示例,有3条原始记录,所有记录都具有给定的长度:

id length 
1  50     
2  55     
3  70     

我想再添加两个记录,每个记录的长度是这些原始记录之一的长度的函数。为此,我添加了另一列(related_id),该列是引用表原始ID的外键。在这种情况下,这些附加记录的长度值比related_id字段所定义的记录的长度值大10。

id length related_id
1  50     (none)    
2  55     (none)
3  70     (none)
4  60     1
5  80     3

出于某种原因,将平面记录与依赖于它们的记录混合在一起似乎会在将来引起问题,因此我想验证这对于这种情况是合法的。

在我看来,另一种选择是创建第二个表,该表仅将外键链接回第一个表,即,这将允许我根据原始表分别获得它们的长度:

id related_id
1  1
2  3

但是,我需要所有这些记录都出现在同一张表中,其中id可以用作另一个需要访问所有这些记录的表中的外键。

当然,在此表中,存在许多不同的字段,这些字段对“原始”记录集具有各种功能依赖性,因此与之相比,它变得更加复杂。对于这种情况,建议的做法是什么?

(我正在与Pandas合作,从表中提取数据并验证每个字段。)

0 个答案:

没有答案