Rails: удалить каскад против зависимого уничтожения
Предполагая, что у меня есть две таблицы:users
а такжеorders
, У пользователя много заказов, поэтому, естественно, в моей таблице заказов есть внешний ключ user_id.
Какова наилучшая практика в рельсах (с точки зрения скорости, стиля и ссылочной целостности), чтобы гарантировать, что, если пользователь будет удален, все зависимые заказы также будут удалены? Я рассматриваю следующие варианты:
Случай 1. Использование:dependent => :destroy
в пользовательской модели
Случай 2. Определение таблицы заказов в postgres и записи
user_id integer REFERENCES users(id) ON DELETE CASCADE
Есть ли какая-то причина, почему я должен использовать Случай 1? Кажется, дело 2 делает все, что я хочу? Есть ли разница в скорости исполнения?