【问题标题】:column range of values depends on another column列的值范围取决于另一列
【发布时间】:2012-11-09 04:07:08
【问题描述】:

我正在设计一个小型数据库,其中包含一个表,该表具有一列,其可能值的范围取决于另一列的值(在同一个表中),即。

表 A

field_a (fk)

field_b (fk)

field_b 可以假设的值范围取决于 field_b 中包含的值。

我的解决方案是在表 A 中将 field_a 和 field_b 组合在一起,并创建一个包含以下内容的中间表:

表 A

field_ab(fk 到表 B 行)

表 B

field_a (fk)

field_b (fk)

这样,表 A 的 field_ab 中的 fk 只能指向 field_a 和 field_b 的有效组合,(假设表 B 已正确填充。)

这看起来真的很尴尬,尤其是对于 field_a 或 field_b 的查询,所以我知道我做的事情根本上是错误的——可能与普通表单有关?

有人可以建议解决我的问题的正确方法吗?

【问题讨论】:

  • 不是触发器是创建后“设置默认值”的可行方法,例如计算属性?
  • 是否可以提前为每个可能的field_a 确定field_b 的有效值?

标签: sql database-design relational-database database-schema


【解决方案1】:

考虑使用 INSERT 触发器来更新计算值。

【讨论】:

  • 可以假定的范围 field_b 的值取决于 field_a 的值,即不是 field_b 的实际值。这意味着触发器将无法计算该值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 2016-11-22
相关资源
最近更新 更多