У меня есть 3 таблицы 1: Каталог - id | name итд. 2: Категория - id | name итд. 3: Связь каталога и категории - id | catalog_id | category_id 1 1 1 2 1 3 3 1 6 4 5 1 Когда я удаляю категорию мне нужно проверить есть ли каталоги в этой категории, и если есть то проверять есть ли в других категориях эти каталоги если есть то удалить категорию если нет то сменить category_id на 0.
Нет тут какая-то сложная логика. Не для FK. Код (Text): if (есть ли каталоги в этой категории) { if (есть ли в других категориях эти каталоги) { если есть то удалить категорию } else { сменить category_id на 0 } } Правда, как мне кажется, тут логический изъян. Я понимаю есть смысл каталоги осиротелые хранить, а зачем нужны осиротелые связки?! Еще из описания неочевидно: отменяется ли удаление там где не написано "удалить категорию". Плохо сформулировано, короче. Переписывай.
если автор хочет делать это на стороне БД, то триггеры и процедуры ему в помощь. начнет делать, подскажем конкретнее