現在、PDO PHP と MySQL を使用して車の予約システムを構築していますが、ユーザーが予約に追加した可能性のある車の追加用にテーブルを構築する方法に苦労しています。
現在、reservation_tableを使用してbooking_idをcar_idにリンクする次のテーブルがあります(別のテーブルから取得):
車のテーブル:
ID | car_make | car_name
1 | Ford | Focus
2 | BMW | Z3
3 | Audi | A5
予約テーブル:
booking_ID | booking_time | total_cost | etc..
125674 | 2013-02-02 | 91.55
887463 | 2013-01-19 | 52.00
209930 | 2013-01-11 | 23.99
予約テーブル:
ID | booking_ID | car_ID
1 | 125674 | 2
2 | 887463 | 2
3 | 209930 | 1
エクストラテーブル:
ID | car_extra | extra_price
1 | GPS | 22.99
2 | Baby Seat | 12.99
3 | Car Charger | 15.99
もともと、選択した車の追加機能の配列を使用して予約テーブルに追加の列を追加し、次のように予約にリンクする予定でした: booking_table:
ID | booking_ID | car_ID | car_extras
1 | 125674 | 2 | [2,3]
2 | 887463 | 2 | [1]
3 | 209930 | 1 | [1,3]
しかし、これは悪い習慣だと読んだことがあります。選択した車の追加 ID (ユーザーが選択した 0 から 12 の範囲) を特定の予約に割り当てることができるように、テーブルを構成するにはどうすればよいですか?
次は、booking_ID だけを extra_ID にリンクした新しいテーブルを作成することで機能します (ただし、これは同じ予約 ID の複数の行を意味します)。
selected_extras_table:
ID | booking_ID | car_extra_ID
1 | 125674 | 2
2 | 125674 | 3
3 | 887463 | 1
4 | 209930 | 1
5 | 209930 | 3