2010-01-19 8 views
2

Je m'excuse que le titre n'a pas de sens, alors permettez-moi de décrire mon problème. J'ai une table pour les questions et une table pour les réponses. Une question a beaucoup de réponses. Quand je crée une question, j'insère simplement autant de réponses que celles fournies. Le problème entre en jeu lorsque je dois mettre à jour les réponses (soit en ajoutant de nouvelles, en éditant celles qui existent déjà, soit en supprimant celles qui existent déjà). Ma stratégie actuelle consiste simplement à supprimer toutes les réponses existantes pour la question particulière, puis à lancer un nouveau lot d'INSERTS. Cela me semble très inefficace, et je suis maintenant dans la situation où j'ai besoin de maintenir les identifiants primaires des réponses, et la suppression des réponses rend cela impossible. Comment puis-je mettre à jour les réponses sans les supprimer d'abord?Quelle est la meilleure façon de mettre à jour n éléments par rapport à un élément?

En note, j'utilise Symfony + Doctrine pour PHP. Je ne sais pas si Doctrine a quelque chose de construit qui peut m'aider, mais je pense qu'il vaut la peine de le mentionner.

Merci

Répondre

1

Pouvez-vous gérer l'ajout, l'édition et la suppression de trois cas distincts? Si l'utilisateur souhaite modifier ou supprimer une réponse, il est probable que vous l'ayez simplement affiché. Vous pouvez donc lui transmettre son ID lorsqu'il soumet la demande d'édition ou de suppression. Dans ce cas, vous pouvez faire une UPDATE ou DELETE avec une clause comme « Où answer_id = 4 »

+0

J'ai fini par ajouter, éditer et supprimer trois cas distincts –

1

Pourquoi ne pouvez-vous faire quelque chose le long des lignes de:

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

Suis-je (ou est la question) manque quelque chose ici?

+0

Cela ne permettrait pas la mise à jour des réponses individuellement, ni ne prendre soin d'insérer de nouvelles réponses, ou en supprimant celles qui existent déjà. –

Questions connexes