2012-07-03 2 views
0

У меня есть веб-приложение, где у меня есть сообщений, и каждое сообщение имеет и принадлежит многим тегам. Я хочу, чтобы теги, связанные с каждым сообщением, можно было редактировать, используя одно текстовое поле, как список, разделенный запятыми. Это позволяет добавлять, удалять и редактировать теги (удаление и добавление). Тем не менее, мое веб-приложение не имеет представления о том, что удалено и удалено, поскольку он просто передал массив тегов, которые я хочу, чтобы сообщение было.Как редактировать ассоциации как единое целое

Я могу думать 2 способов обработки:

  1. Удалить все ассоциации между тегами и постом, и восстановить их.
  2. Извлеките массив тегов перед редактированием, выполните сравнение, чтобы узнать, какие из них добавить.

Каков наилучший способ справиться с этой ситуацией и почему?

+0

Я бы выбрал вариант (1), потому что это меньше усилий в вашем приложении и, как правило, не очень дорого для базы данных. Выполните две операции ('DELETE', затем' INSERT') в транзакции, чтобы сохранить атомарность. – eggyal

+0

Да, это хороший момент для транзакций. Как насчет того, есть ли у вас отношения «один ко многим»? Использует ли больше первичных ключей с автоматическим приращением, чем необходимый? –

+0

Зачем нужна таблица ассоциаций в столбце 'AUTO_INCREMENT'? – eggyal

ответ

0

В результате я просто удалил все теги, связанные с этим сообщением, и восстановил их.

Смежные вопросы