前提・実現したいこと
会員制の掲示板サービスをlaravelで作るためにDB設計をしています。
生徒がスレッドをたてて質問し、そのスレッドに他の生徒や先生がコメントする事が出来る仕組みです。
やり取りの間にシステムからコメントが入る事もあります。
(例えば質問事項に変更があったときに「内容が更新されました」というコメントが最新コメントの次に自動で入ります)
コメントを保存するためのテーブルの設計をどうすれば良いか悩んでいます。
現時点の設計
現時点で考えているデータベース設計は以下の通りです。
生徒と先生では登録する内容が異なり認証形式も違うため別テーブルに分けています。
students テーブル ID パスワード ユーザ名 学年 ・ ・
teachers テーブル ID メールアドレス パスワード ユーザ名 専門科目 ・ ・
threads テーブル ID 立てた生徒のID (studentテーブルのIDとリレーション) タイトル 質問内容 ・ ・
commentテーブルは2パターン考えています。
comments テーブルその1 ID 会員種別フラグ (boolean trueなら先生) ユーザID システムフラグ (boolean) コメント ・ ・
会員種別フラグとユーザIDからユーザを特定し
どちらもnullでシステムフラグがtrueならシステムのコメントとして処理します。
comments テーブルその2 ID 生徒ID 先生ID システムフラグ (boolean) コメント ・ ・
生徒IDか先生IDどちらかがnullで無ければnullで無い方のユーザIDを用いてユーザを特定し
どちらもnullでシステムフラグがtrueならシステムのコメントとして処理します。
どちらの方がより適切なのか、また他に良い方法があれば教えて下さい。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/08 07:25