KotlinとSpring Bootで開発中です。
題名の通り、データ削除のロジックについて質問です。
1:Aテーブル
多:Bテーブル
の関係2つのテーブルがあります。
Bテーブルのレコードが5日以上古い場合は、都度削除するようにしようとしています。
その際、外部キーとして持っているAテーブルのレコードも削除する仕様です。
現在の実装
Bテーブルから5日以上前のレコードをSQLで全部引っ張ってくる。 ↓ 引っ張ってきたレコードの数でループを回す ↓ Bテーブルのidと回しているレコードのidが合致したら削除 ↓ Aテーブルのidと回しているレコードの`a_id`が合致したら削除
という感じで作ってみました。
しかし、よくよく考えるとBテーブルは多ですので、Aを削除する前に紐付いているBのレコードは全部削除してからAを削除しないと外部キー制約で確実にループがコケていしまいます。
こういった場合はどういうロジックで削除していくのがいいのでしょうか?
ループの中にifで分岐させるのも考えたのですが、そもそも古いレコード分ループが回るのでしっくりきませんでした。
どなかた教えて頂ける方、よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー