Rails: удалить каскад против зависимого уничтожения

Предполагая, что у меня есть две таблицы:users а такжеorders, У пользователя много заказов, поэтому, естественно, в моей таблице заказов есть внешний ключ user_id.

Какова наилучшая практика в рельсах (с точки зрения скорости, стиля и ссылочной целостности), чтобы гарантировать, что, если пользователь будет удален, все зависимые заказы также будут удалены? Я рассматриваю следующие варианты:

Случай 1. Использование:dependent => :destroy в пользовательской модели

Случай 2. Определение таблицы заказов в postgres и записи

user_id integer REFERENCES users(id) ON DELETE CASCADE

Есть ли какая-то причина, почему я должен использовать Случай 1? Кажется, дело 2 делает все, что я хочу? Есть ли разница в скорости исполнения?

Ответы на вопрос(3)

Ваш ответ на вопрос