新项目需要动态数据模型,这意味着记录的属性存储在一个单独的表中,如下所示:
Items:
ID | insertiondate
1 | 2017-01-31
Properties:
ID | fk_Item_ID | Key | Value
1 | 1 | referenceNr | 1
2 | 1 | office | O1
...
我现在需要的是强制执行" referenceNumber"在独特的办公室"。
因此,使用2个值(1,O2)插入此表是正常的以及(2,O1) - 但是(1,O1)必须违反约束。
有没有一种简单的方法可以解决这个问题?
答案 0 :(得分:1)
即使项目确实要求输入一些键/值条目,referencenr
和office
似乎也不是这样,因为您希望对该对应用约束。因此,只需将两者放在项目表中并添加约束。
我看到的唯一另一个选择是创建两个条目:
ID | fk_Item_ID | Key | Value 1 | 1 | 'referenceNr/office' | '1/01'
我会选择第一个解决方案。只有在绝对必要的情况下才能使用键/值对(以及DBMS可能会忘记其内容和相互关系)。