使用Doctrine 2,如果您(例如)有2个赞助商(ID 1和2)的锦标赛,然后用户移除赞助商1并在一个动作中添加赞助商3(如列表中所示),那么将更改同步到数据库的最佳方法,以便只有一个删除查询和一个插入查询?
UI将为我提供一组新的ID,例如“1,3”,我需要使用它来确定已添加的内容以及已删除的内容。
答案 0 :(得分:0)
我将书籍与作者联系起来的情况相同。如果我想更新作者列表(通过pivot aka链接表),我只需从数据透视表中删除所有作者ID,其中book_id = 1,然后添加新的作者列表。这样您就不必引入复杂的逻辑来确定差异。此外,如果将其包含在交易中,也是最好的。