За последние 24 часа нас посетили 16029 программистов и 1642 робота. Сейчас ищут 979 программистов ...

Помогите решить проблему

Тема в разделе "Прочие вопросы по PHP", создана пользователем Арам, 10 дек 2013.

  1. Арам

    Арам Новичок

    С нами с:
    9 дек 2013
    Сообщения:
    1
    Симпатии:
    0
    У меня есть 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.
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    что именно вы неможете сделать?
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Каскадирование, походу. Автор, кури внешние ключи и каскадные параметры создания таблицы.
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Нет тут какая-то сложная логика. Не для FK.

    Код (Text):
    1. if (есть ли каталоги в этой категории) {
    2.     if (есть ли в других категориях эти каталоги) {
    3.         если есть то удалить категорию
    4.     } else {
    5.         сменить category_id на 0
    6.     }
    7. }
    Правда, как мне кажется, тут логический изъян. Я понимаю есть смысл каталоги осиротелые хранить, а зачем нужны осиротелые связки?!

    Еще из описания неочевидно: отменяется ли удаление там где не написано "удалить категорию".

    Плохо сформулировано, короче. Переписывай.
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    если автор хочет делать это на стороне БД, то триггеры и процедуры ему в помощь.
    начнет делать, подскажем конкретнее