私は、データベースにそうではないと私は、次の疑問があります。宿泊施設サービスの客室料金を表すこのSQLテーブルのキーを設定する最適なソリューションは何ですか?
id bigint(20) unsigned NO PRI NULL auto_increment
rate_name varchar(255) NO NULL
rate double NO NULL
date_from datetime NO PRI NULL
date_to datetime NO PRI NULL
id_room_tipology_fk bigint(20) unsigned NO PRI NULL
time_stamp datetime YES NULL
私は主キーがあることがあります。
を私が宿泊システムのレートreserverationsを表すこのroom_rateテーブルを持っています
1)id:自動増分IDで構成されています。
2)date_from:開始日。
3)date_to:校正日。
4)id_room_tipology_fk:部屋のティポロジー別のテーブルへのリンク。
このテーブルのレコードは単にDATE_FROMとDATE_TO日付で表される時間の特定の範囲内(id_room_tipology_fkによって表される)部屋のtipologyにbeloning部屋のコストでどれだけ表現します。
同じ部屋のティポロジーに同じ時間帯のテーブルに2つのレコードがあることを避けたいと思います。
以前の主キーサブセットを使用しているかどうか、またはidフィールドを除外する必要があるかどうかを確認しています。私は、同じ期間に同じ部屋のtipology(5)のための2率を持つことができないので
1 rate1 50 01/01/2017 10/01/2017 5 04/12/2016
2 rate2 70 01/01/2017 10/01/2017 5 06/12/2016
:
は基本的に私はこのようなものを持つことはできません。この状況を正しくモデル化する最良の解決策は何ですか?
時間範囲を処理するには、MySQLでトリガーを使用する必要があります。 –
@GordonLinoffいいえ、たぶん私ははっきりしていませんでした...レコードは、特定の時間帯に部屋のコストがどれくらいあるかを表しています。部屋の賃貸人は同じ時間範囲に同じ価格を挿入することはできません...これは私が – AndreaNobili
@GordonLinoffをモデル化しなければならない制約ですか、何か不足しているかもしれませんか? – AndreaNobili