2016-10-07 14 views
0

私はフットボールの試合(フライト、ホテル、観光スポット、スタジアム)に関する情報を人々が入手できるプロジェクトに取り組んでいます。サイトにはアポイントメントのリストも含まれていなければなりません(私の飛行機はいつ、どこにありますか、私のホテルはどこですか、いつスタジアムに行かなければなりません...)。私の意見では、私はMySQL:1つのテーブルでさまざまなテーブルIDを参照する

appointmentID | appointmentDate | appointmentDuration | flightID | hotelID | stadiumID 

ようs.thを行うと、NULLと非必要な値を埋めることができ、ユーザ今回の人事一般に

に関するいくつかの追加の情報を提示するために、この予定表ではホテルなど。しかし、私はそれが良い考えではないと思う。 appointmentTypeのIDで

appointmentID | appointmentDate | appointmentDuration | appointmentType | appointmentTypeID 

とテーブルの列とappointmentTypeを埋める(ホテル、格安航空券、...)とappointmentTypeID:

また、私は彼らにこの方法を格納することができます。しかし、その方法は良いとは思わない。

私の質問です:データベースにこの値を保存するにはどうすればよいでしょうか?

編集:目標はテーブルを正規化することです。そして、一般的に私はどのデータを別々のテーブルに入れるべきかを知っています。私の質問は、この特定のケースでどうすればいいのですか?

+0

をR_ID。より多くの行がより良い – Drew

+0

私は、デフォルトの答えが "それを正規化"であることを知っています。問題は、私が予定から抽出できるデータがあまりないためです。予定表と予定表の追加テーブルを作成して、予定表IDとその他のIDを入れても構いません。 – mirko911

+0

(A)不完全な情報ではなく、 B)該当せず、(C)スケーラブルでも柔軟でもない。私はそれを呼び出すときapptを持っていたいが、私はヤンキースの試合とメッツにも行くつもりです。ああ、私は2つのホテルチャンクを持っています。私はあなたがそのアイディアを得たと思う。一般的に言えば、水平方向と垂直方向の選択肢がある場合、垂直方向を選択します。 – Drew

答えて

0

最初の方法はより良い選択肢のようです。

は、私は、次のを持っているでしょうが、私はAppointment_table が app_f_idをAPP_ID

参照テーブル(飛行テーブルのIDを参照) app_h_id(ホテルテーブルのIDを参照) app_s_id(のIDを参照を追加しますスタジアムテーブル) app_ref_table(idは何百万に伸ばす可能性があるので、IDを利用したことは、将来的に問題になりますので、これはユニークな生成された基準を含んでいるでしょう...)

Flight_table をF_ID をf_date_bookingf_carrier はHotel_table

をf_date_confirmed

h_descripion h_guestsをh_id Stadium_table は、参照テーブルは、シーケンス1またはこれまでどのお好みで始まります毎年 s_description

をS_ID。これは私の意見ではテーブル構造にきちんとしたアプローチです。 Reference_tableは、正規化された R_YEAR r_sequence r_app_id(生成された参照番号を有していた最後のID)

関連する問題