У меня есть веб-приложение, где у меня есть сообщений, и каждое сообщение имеет и принадлежит многим тегам. Я хочу, чтобы теги, связанные с каждым сообщением, можно было редактировать, используя одно текстовое поле, как список, разделенный запятыми. Это позволяет добавлять, удалять и редактировать теги (удаление и добавление). Тем не менее, мое веб-приложение не имеет представления о том, что удалено и удалено, поскольку он просто передал массив тегов, которые я хочу, чтобы сообщение было.Как редактировать ассоциации как единое целое
Я могу думать 2 способов обработки:
- Удалить все ассоциации между тегами и постом, и восстановить их.
- Извлеките массив тегов перед редактированием, выполните сравнение, чтобы узнать, какие из них добавить.
Каков наилучший способ справиться с этой ситуацией и почему?
Я бы выбрал вариант (1), потому что это меньше усилий в вашем приложении и, как правило, не очень дорого для базы данных. Выполните две операции ('DELETE', затем' INSERT') в транзакции, чтобы сохранить атомарность. – eggyal
Да, это хороший момент для транзакций. Как насчет того, есть ли у вас отношения «один ко многим»? Использует ли больше первичных ключей с автоматическим приращением, чем необходимый? –
Зачем нужна таблица ассоциаций в столбце 'AUTO_INCREMENT'? – eggyal