Szyny: usuń kaskadę i zniszcz zależne

Zakładając, że mam dwie tabele:users iorders. Użytkownik ma wiele zamówień, więc oczywiście w tabeli moich zamówień jest klucz obcy user_id.

Jaka jest najlepsza praktyka w szynach (pod względem szybkości, stylu i integralności referencyjnej), aby zapewnić, że jeśli użytkownik zostanie usunięty, wszystkie zlecenia zależne zostaną również usunięte? Rozważam następujące opcje:

Przypadek 1. Używanie:dependent => :destroy w modelu użytkownika

Przypadek 2. Definiowanie rozkazów tabeli w postgres i pisanie

user_id integer REFERENCES users(id) ON DELETE CASCADE

Czy jest jakiś powód, dla którego powinienem użyć Przypadku 1? Wydaje się, że sprawa 2 robi wszystko, co chcę, aby to zrobić? Czy istnieją różnice w szybkości wykonywania?

questionAnswers(3)

yourAnswerToTheQuestion