2017-04-06 1 views
0

6人の英数字で構成された共通の参照番号を使用して、一緒に予約した乗客/ゲストに関するデータを保存します。テーブル内の主キーは(ref_number、number_of_guest)である必要があります(たとえば、(ASDFJK; 1)は予約内のゲスト#1を参照し、ASDFJK; 2は予約内のゲスト#2を参照します)。 SET NEW.ref = randomlyGeneratedStringのようなBEFORE INSERT ONトリガーでこの参照番号を作成するのですが、MySQLには行レベルのステートメントしかないので、同じ予約内のすべての人にn個の異なる参照番号を追加できます。意味がありません。MySQLでランダムに生成された文字列を主キーとして使用するにはどうすればよいですか?

+0

あなたの質問は何ですか?あなたの参照番号は6文字の英数字でなければならないのはなぜですか? – mba12

+0

理想的には、予約自体に予約テーブルの行が1つあります(そのテーブルには参照番号が含まれています)。予約を参照する乗客/ゲスト用の別個のテーブル。 – Uueerdo

+0

ランダムに生成された参照を持つテーブルに行を作成するとしますが、それをゲストにリンクするにはどうしたらいいですか?だから私は1つの予約で3人のゲストがいる場合、私は 'ゲスト 'テーブルに3行を追加するが、私はどのようにそれらのそれぞれのレコードに参照番号を挿入するのですか?ここでもまた、リファレンスは、 'generate_reference BEFORE INSERT ON reservations'トリガを用いたcreateである。予約システムとウェブサイトで参照番号を生成するだけで問題を解決することができますが、データベース内で行うことをお勧めします。 MySQLがステートメントレベルのトリガーを欠いていることは残念です... – Gabe

答えて

1

普通のprimary keyのように私はあなたがprimary keyを必要としないと思いますので、フィールドの保存を追加してすべてを行うことができます。

関連する問題