【问题标题】:Implementing data mathematical consistency among table rows在表行之间实现数据数学一致性
【发布时间】:2012-12-29 07:19:53
【问题描述】:

我有 3 张桌子:PersonsVariablesPerson_Data

Person_Data 表有不同人的各种变量的数值数据。列是:variable_valueperson_idPersons 的外键)和variable_id(fk 到Variables)。

一些变量相互关联(例如:收入、家庭规模和人均收入)。我想创建一个Variable_Relationship 表来存储此类信息并执行数据完整性检查。表中的一列将是 Dependant_Variable_Id(关系的 LHS)。

  1. 问题在于 RHS 变量的数量不固定,数学表达式也不固定。
  2. 有没有办法很好地实现这一点?

现在我正在考虑一个relationship_definition 文本列以及另一个具有Relationship_IdRHS_VariableId 列的表。

【问题讨论】:

  • 不幸的是,这种困难是 EAV 数据模型的典型。请参阅此 wiki 文章:en.wikipedia.org/wiki/… 并考虑您是否真的需要此模型。您在很大程度上必须在应用程序中实现关系和约束,而不是让数据库强制执行它们。

标签: sql data-consistency


【解决方案1】:

在我看来,没有办法在 SQL 中管理它,因为您无法动态解释以列值表示的公式。 根据您用于访问数据库数据的语言,您应该开发一个表达式解析器(您可以搜索大量提供此类功能的开源库)并使用它来解析从 RHS 列读取的表达式,评估它们并执行完整性检查。

【讨论】:

    猜你喜欢
    • 2020-03-28
    • 2022-10-12
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 2011-06-20
    • 2014-05-02
    • 2014-10-18
    • 1970-01-01
    相关资源
    最近更新 更多