初学者でさらに迷いが出てきたので、お聞きしたいです。
現状どちらの考え方or別の考え方でテーブルを作るべきかと思った次第です。
DBでの表現方法はたくさんある気がしていて、このパターンならこれで十分、この観点が抜けてるなど教えていただきたいです。
こちらの質問の類似となっております
https://teratail.com/questions/329551
表現したいこと
userがコミュニティに参加できるサービスで、それぞれのコミュニティ上でプロフィール名を設定と、通知の有無を設定できます。
コミュニティに参加時には、notification_settings.is_allow
は1
で作成され、
profile
は作成されません。
自分の設定画面から設定するとデータができるようにしようと思っております。
また参加した際には、参加の日付がログとして残そうと思っています。(join_log
)
コミュニティから退会した場合は、ログ以外のデータは全て削除する予定です。
DBの設計にあたって
DBパターン1
DBパターン2
全てのデータを消そうと思っているので、 delete cascadeをつけて
サロゲートキーで引っ張ってこようと思っています。
DBパターン3
上記とは違う何か案があれば教えていただきたいです。