0

我有一个属性定义表和第二个包含实际属性值的表:

table propdef: id, name, description 
table props: id, propdefid, userid, value

这样我就可以为我的用户动态创建属性。当我想为用户更新属性时,如果存在 propdefid/userid 行,我必须检查 props 表,然后在此使用更新或创建。

现在我首先查询数据库,然后决定在我的 java 代码中做什么。有没有办法在 ibatis sqlmap 中做到这一点 - 在我的 java 代码中没有额外的逻辑?

我正在使用 mysql 作为数据库。

4

1 回答 1

1

在你走得更远之前,你需要停下来阅读这篇文章:http ://tonyandrews.blogspot.com/2004/10/otlt-and-eav-two-big-design-mistakes.html

如果您仍然认为 EAV 是要走的路,那么仍有希望。我无法在 ibatis/java 级别提供建议,但我可以告诉您查看 INSERT ... ON DUPLICATE KEY UPDATE。这会将您的两个语句变为一个。

于 2009-08-25T19:35:53.833 回答