跨表约束一列

问题描述

我使用 Postgres 在两个表中存储公式和公式元素。基本上,你有类似的东西:

元素表

符号 内容
pi 3.1.45
42

公式表

符号 内容
区域 pi*r^2
地毯尺寸 区域*月

因此,公式可以在其内容字段中使用元素,也可以使用其他公式。出于这个原因(以及为了减少混淆),我想让两个表中的符号都是唯一的。

当然,我可以在进行插入的代码中,在添加条目之前查找条目并拒绝添加重复符号。 (我可能会这样做,但我不希望数据库依赖于此。)我还可以要求公式表中的标签指定何时使用另一个公式:

符号 内容
地毯尺寸 f(area)*lune

我并不为此感到疯狂,因为它会给用户带来负担来记住这一点,或者给编码人员秘密添加删除“f()”带来负担。

我在 Stack 和其他地方发现的所有内容都是相反的:强制列值出现在另一个表中,除了一个建议将唯一项保存在单独的表中。

符号
区域
pi
地毯尺寸

然后……实际上,我仍然不确定这在数据库级别会如何工作。

那么,有没有办法用约束或外键来做到这一点,或者我必须为每个表编写一个触发器来查看另一个表?

补充:我在这里大大简化了,但元素表比我展示的要复杂得多,并且与公式表几乎没有共同之处。

编辑添加了上述内容,并尝试修复在编辑预览中看起来不错但在实际页面上格式不正确的一列“符号”表。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)