0

私はチケット予約に関連するプロジェクトに取り組んでいます。名前、年齢、性別などの乗客データをチケット ID とともに乗客テーブルに格納できます。しかし問題は、同じ乗客のために別のチケットが予約された場合、同じ乗客データを再入力する必要があり、チケット ID だけが異なることです。

mysql> desc passenger;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Name  | varchar(32) | NO   |     | NULL    |       |
| Age   | int(11)     | NO   |     | NULL    |       |
| sex   | char(1)     | NO   |     | NULL    |       |
| PNR   | varchar(32) | YES  | MUL | NULL    |       |
+-------+-------------+------+-----+---------+-------+

このような冗長性を最小限に抑える方法を教えてください。

リンク、参照、手がかり、またはアイデアはかなりのものです。ありがとうございました

4

4 に答える 4

0

Users テーブルと Ticket details テーブルを作成する必要がある場合があります。users テーブルにはユーザーの詳細が保存され、Ticket_details にはチケットの詳細が保存されます。ここで、user_id は ticket_details テーブルの外部キーとして使用されます (このテーブルの名前は都合に合わせて指定できます)。

 TABLE users
 +---------+-------------+------+-----+---------+---------------+
 | Field   | Type        | Null | Key | Default | Extra         |
 +-------+-------------+------+-----+---------+-----------------+
 | user_id | int(11)     | NO   | PK  |         | AutoIncrement |
 | name    | varchar(32) | NO   |     | NULL    |               |
 | age     | int(11)     | NO   |     | NULL    |               |
 | sex     | char(1)     | NO   |     | NULL    |               |
 +-------+-------------+------+-----+---------+-----------------+`


 TABLE ticket_details
 +---------+-------------+------+-----+---------+-----------------+
 | Field   | Type        | Null | Key | Default | Extra           |
 +-------+---------------+------+-----+---------+-----------------+
 | ticket_id | int(11)     | NO   | PK  |         | AutoIncrement |
 | user_id   | int(11)     | NO   | FK  |         |               |
 | PNR       | varchar(32) | NO   |     |         |               |
 +-------+-------------+------+-----+---------+-------------------+
于 2013-10-07T09:18:57.007 に答える