更新与一个项目相关的n个项目的最佳方法是什么?

时间:2010-01-19 02:57:12

标签: sql mysql

我很抱歉标题可能没有意义,所以让我来描述我的问题。我有一个问题表和一个表的答案。一个问题有很多答案。当我创建一个问题时,我只是插入尽可能多的答案。当我必须更新Answers(添加新的,编辑现有的或删除现有的)时,问题就出现了。我目前的策略是简单地删除特定问题的所有现有答案,然后运行一批新的INSERTS。这对我来说效率非常低,而且我现在遇到了需要维护Answers的主要ID的情况,并且删除Answers使得这不可能。如何在不先删除答案的情况下更新答案?

作为旁注,我正在使用Symfony + Doctrine for PHP。我不知道Doctrine是否内置了可以帮助我的内容,但我认为值得一提。

由于

3 个答案:

答案 0 :(得分:1)

为什么你不能按照以下方式做点什么:

UPDATE Answers SET ... WHERE (question_id = ...);

我(或问题)在这里遗漏了什么?

答案 1 :(得分:1)

你可以处理添加,编辑和删除三个独立的案例吗?

如果用户想要编辑或删除答案,您可能只是显示了答案,因此您也可以在提交编辑或删除请求时传递其ID。在这种情况下,您可以使用类似“WHERE answer_id = 4”的子句进行UPDATE或DELETE

答案 2 :(得分:0)