我有一个属性定义表,第二个用于保存实际的属性值:
table propdef: id, name, description
table props: id, propdefid, userid, value
这样我就可以为我的用户动态创建属性。当我想为用户更新属性时,如果存在propdefid / userid行,则必须检查props表,然后使用update或create。
现在我首先查询数据库,然后决定在我的java代码中做什么。有没有办法在ibatis sqlmap中做到这一点 - 我的java代码中没有额外的逻辑?
我使用mysql作为db。
答案 0 :(得分:1)
在你走得更远之前,你需要停下来阅读这篇文章:http://tonyandrews.blogspot.com/2004/10/otlt-and-eav-two-big-design-mistakes.html
如果您仍然认为EAV是可行的方式,那么仍有希望。我无法在ibatis / java级别提供建议,但我可以告诉您查看INSERT ... ON DUPLICATE KEY UPDATE。这会将你的两个陈述改为一个。