Контакты

Достижения

Все достижения (92)

Наибольший вклад в теги

Все теги (134)

Лучшие ответы пользователя

Все ответы (62)
  • Есть ли смысл в нативных связях в БД, если relation в active record их дублируют?

    HaruAtari
    @HaruAtari
    Если вы не проставите внешние ключи, то данные можно будет менять только через ваше приложение. Если вдруг вам понадобится что-то поменять в обход описанных алгоритмов, то вы рискуете потерять целостность данных. А такие ситуации бывают довольно часто.

    Если же вы выставите ключи, то бд сама будет следить за целостностью. Она не даст вам записать неконсистентные данные и при удалении каскадно удалит все "осиротевшие" записи (если ключ этого требует).

    Плюс каскадное удаление бд сделает быстрее, чем ваш код. Вы например удаляете пользователя и надо удалить все его записи. Вам для этого сначала придется выбрать все его записи. Удалить их. А уже потом удалить пользщователя. А в внешними ключами вы просто удаляете пользователя, а бд сама подчистит все зависимые записи.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (117)