現在イベント検索と申し込みを行えるアプリケーションをRuby on Railsで作成しています。
DB設計で悩んでしまっているので、アドバイスを頂けたら幸いです。
##概要---イベントと登録カスタマーのDB上の関係---
以下のようにイベントテーブルとカスタマーテーブルがありまして、
多対多の関係になります。
中間テーブルはチケットテーブルになっていて、
イベント参加申し込みをされた時点で、チケットを発行(=中間テーブルにレコードを作成)します。
##問題点---非登録カスタマーどうする?
しかし、イベントに参加申し込みできるのは、登録したカスタマーだけではなく、
今回だけ参加するという非登録のカスタマーも含めることにしました。
その場合登録済みカスタマーを保存しているカスタマーテーブルだけでは不十分なため、
DB設計を見直さないといけなくなりました。
どのようにすれば効率的なDB設計になるでしょうか?
#####前提条件
・現在のカスタマーテーブルにはdeviseを使用しているため、メール・パスワード設定なしのレコードの追加はできない。
#####現在考えていること
①ゲストテーブルを新たに作り、1回限りの非登録カスタマーはそこに追加していく。
②チケットテーブル(中間テーブル)をcustomer_idなしでレコード追加できるようにして、カスタマーテーブルと同じname,email,sexなどのカラムを持たせる。
###開発環境
ruby '2.5.1'
rails '5.2.2'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/14 09:48 編集