ФорумРазработкаБазы данных → STI + FK (onDelete="CASCADE")

STI + FK (onDelete="CASCADE")

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 8 августа 2011 г. 18:09

    В общем есть у меня
    comments(id, body, object_kind(photo, topic), object_id),
    photos(id, title),
    topics(id, title, body).

    Как вы видите, в таблице comments используется Single Table Inheritance. И вот я хочу, что б при удалении топика удалялись связанные с ним комментарии. Но вот проблема - составной ключ object_id-id - удаляться будут не только комментарии топика, но и комментарии фоток с тем же id.

    Как быть? Не использовать каскадное удаление?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 августа 2011 г. 19:37, спустя 1 час 28 минут 5 секунд

    как вариант думаю можно завести 2 поля - post_id, photo_id и в тот или другой вписывать идентификатор и ну и FK :-))

    работать возможно будет, не так логично, но оно всегда такое с костылями)
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 8 августа 2011 г. 19:51, спустя 13 минут 56 секунд

    да, это вариант, конечно. Спрошу еще на стековерфлоу
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 августа 2011 г. 21:45, спустя 1 час 54 минуты 26 секунд


    да, это вариант, конечно. Спрошу еще на стековерфлоу
    ответь сюда если подскажут чтото более адекватное :-)
    Сапожник без сапог
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 8 августа 2011 г. 23:42, спустя 1 час 56 минут 47 секунд

    как вариант думаю можно завести 2 поля - post_id, photo_id и в тот или другой вписывать идентификатор и ну и FK :-))

    а я так и делаю всегда)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!