在我的数据库中,实体是:
- designed_object:通用设计对象
designed_object_param:与设计对象相关的参数,有类型(param_type)、默认值(param_value)、最大值和最小值(param_max/min_value)
real_object:设计对象的一个实例
- real_object_param:实例的实际参数(param_value)
它们的关系如下(外键):
- designed_object - real_object: 1..n
- designed_object - designed_object_param: 1..n
- 真实对象 - 真实对象参数:1..n
- designed_object_param - real_object_param: 1..1
问题是从 real_object_param 到 designed_object 有两条路径:
- real_object_param -> real_object -> designed_object
- real_object_param -> designed_object_param -> designed_object
使用此设计,如果由于某些错误,real_object_param 引用了错误的 designed_object_param,则两条路径可能会从相同的 real_object_param 指向两个不同的行。我知道这可以通过触发器来避免。有没有更好的设计?
谢谢。