Пропускай все через сердце
Добрый вечер. Есть следующий вопрос по БД. (MySQL, InnoDB таблицы)
Есть 3 таблицы. Условно скажем так:
1. table1
-table1_id
-...
2. table2
-table2_id
-..
3. table3
-table3_id
-t1
-t2
Думаю понятно, что table1_id, table2_id - первичные ключи, а t1,t2 - внешние.
При настройке внешнего ключа стоит каскадное обновление и удаление данных.
Что надо: При удалении записи из первой таблицы - удалить все связанные с ней записи в третьей таблице. При это связанные данные из таблицы 2- не удалять.
При удалении записи из второй таблицы - удалить все связанные с ней записи в третьей таблице. При это связанные данные из таблицы 1- не удалять.
Что получается: При удалении записи из первой таблицы удаляются все связанные с ней записи из третьей таблицы, а также запись из второй таблицы.
При удалении записи из второй таблицы удаляются все связанные с ней записи из третьей таблицы, а также запись из первой таблицы.
Надеюсь, идея понятна. Как решить проблему? Или только несколько запросов делать?
Есть 3 таблицы. Условно скажем так:
1. table1
-table1_id
-...
2. table2
-table2_id
-..
3. table3
-table3_id
-t1
-t2
Думаю понятно, что table1_id, table2_id - первичные ключи, а t1,t2 - внешние.
При настройке внешнего ключа стоит каскадное обновление и удаление данных.
Что надо: При удалении записи из первой таблицы - удалить все связанные с ней записи в третьей таблице. При это связанные данные из таблицы 2- не удалять.
При удалении записи из второй таблицы - удалить все связанные с ней записи в третьей таблице. При это связанные данные из таблицы 1- не удалять.
Что получается: При удалении записи из первой таблицы удаляются все связанные с ней записи из третьей таблицы, а также запись из второй таблицы.
При удалении записи из второй таблицы удаляются все связанные с ней записи из третьей таблицы, а также запись из первой таблицы.
Надеюсь, идея понятна. Как решить проблему? Или только несколько запросов делать?