我有3个表:Persons
, Variables
, Person_Data
。
Person_Data
表中有不同人各变量的数值数据。列是:variable_value
, person_id
(Persons
的外键)和variable_id
(fk到Variables
)。
一些变量是相互关联的(例如:收入、家庭规模和人均收入)。我想创建一个Variable_Relationship
表来存储这类信息并执行数据完整性检查。表中的一列是Dependant_Variable_Id
(关系的LHS)。
- 问题是RHS变量的数量不是固定的,数学表达式也不是固定的。
- 有办法很好地实现这一点吗?
现在我正在考虑relationship_definition
文本列以及另一个具有Relationship_Id
和RHS_VariableId
列的表。
在我看来,没有办法在SQL中管理它,因为您没有办法解释用列值表示的动态公式。根据您用来访问数据库上的数据的语言,您应该开发一个表达式解析器(您可以搜索提供这种特性的大量开放源码库),并使用它解析从RHS列读取的表达式,对它们求值并执行完整性检查。