回答編集履歴

1 追記

kou0179

kou0179 score 294

2019/04/14 17:33  投稿

私が今考え付いたもので、これがベストである気はしませんので参考までに。
きっとこの後、もっと優秀で経験豊富な方が良い方法を提案してくれるかもしれません。
#### 中間テーブルにguest_idを追加し以下構成に
- event_id
- customer_id
- guest_id
- number (これは何・・・?)
#### 処理方法
> ①ゲストテーブルを新たに作り、1回限りの非登録カスタマーはそこに追加していく。
> ②チケットテーブル(中間テーブル)をcustomer_idなしでレコード追加できるようにして、カスタマーテーブルと同じname,email,sexなどのカラムを持たせる。
ほぼこの通りで、中間テーブルのcustomer_idとguest_idにnullを許可する
検索したい時は、guestを検索したければ customer_id is null、customerを検索したければその逆を。
あんまりイケてる気はしません。
あんまりイケてる気はしません。
## もしくは(追記)
eventとguest用の中間テーブルを別で作った方が良いかも

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る