我试图在以下特征中的一个模式执行数据正确性:复杂的逻辑约束
表:
|SAVE_TYPE|PROFILE|USERNAME|DATA|
根据保存键入轮廓列或username列将被使用。试想一下,如果一个想在轮廓范围内保存数据,那么我会插入下面一行:
|SAVE_TYPE|PROFILE|USERNAME|DATA|
|PROFILE |PROF. 1|Mr. X |123 |
此行将意味着数据将可用于型材PROF。 1并插入到由用户X先生在另一方面在这种情况下:
|SAVE_TYPE|PROFILE|USERNAME|DATA|
|USER |NULL |Mr. X |456 |
该行表示该数据将仅适用于X先生
我不知道对此行为实现约束的最好方法是什么,可能是我应该使用另一个表结构(我打开以更改模式)。 现在我所拥有的是SAVE_TYPE,PROFILE和USERNAME列的唯一约束,但现在这完全正确。错误的数据,我的模型接受:
上SAVE_TYPE多个实例 - >用户对同一个用户。
|SAVE_TYPE|PROFILE|USERNAME|DATA|
|USER |PROF. 1|Mr. X |456 |
|USER |PROF. 2|Mr. X |456 |
|USER |PROF. 3|Mr. X |456 |
对于同一个配置文件,SAVE_TYPE - > PROFILE上的多个实例。
|SAVE_TYPE|PROFILE|USERNAME|DATA|
|PROFILE |PROF. 1|Mr. X |123 |
|PROFILE |PROF. 1|Mr. Y |123 |
|PROFILE |PROF. 1|Mr. Z |123 |
在此先感谢,希望我所做的事情说清楚:)
我想这毕竟是一个简单的问题:)。感谢您打开我的心! – eliocs