【发布时间】: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