2012-09-11 3 views
5

実際にカレンダーデータを保存するための簡単なアーキテクチャの質問です。MySQLにカレンダーデータを保存する

基本的に、私はレンタルサービスのデータベースを持っています。フロントエンドには、将来の日付ごとに「使用可能」または「使用不可」のいずれかを示すカレンダーがあります。バックエンドでは、jQueryカレンダーで任意の日付/日付範囲を使用可能または使用不可(1または0)に設定できます。

私が持っている質問は、このデータをmysqlに保存してフロントエンドで取得する方法です。

可能な限りの日付があり、利用できない日付はありますか?その後、再び利用可能に設定されている場合は、その日付のレコードを削除しますか?

乾杯、 RJ

答えて

3

可能なすべての日付が使用可能と使用不能に日付を格納がありますか?その後、再び利用可能に設定されている場合は、その日付のレコードを削除しますか?

はい、私の期限が切れるを借りるときに私はレコードを削除しません除いて、それで行くと思います - あなたは、自動的にも借りるの履歴を保持するので、それは、過去のだから、あなたは簡単にレンタル期限の切れを知っていますよ。結局のところ

あなたは他の方法で回避(および保存された無料の日付)を行った場合には、人工的に日付のサポート範囲を制限する必要があると思いますので、利用可能な日数の無限の数が、そこにあります。

将来的には、そして、ある意味では、過去においても同様です。

また、サービスのレンタル(賃貸人の名前など)に備えて、レンタルが存在しない行で表されている場合は、それを保存する場所がないと思われます。


レンタルの粒度は一日なので、私はあなたがこれに似たデータベース構造を見ていると思う:

enter image description here

注RENTING_DAY PKが自然に重複を防ぐ方法について説明します。

また、RENTING_DAYを捨ててSTART_DATEとEND_DATEをRENTINGに直接入れることもできますが、これには明示的にrange overlap checksmay not scale ideally)が必要です。

+0

偉大な答え、ありがとう。そして、重複チェックへのリンクに感謝します。私は日付範囲を保存することが重要ですので、必要に応じて重複チェックと更新/置換を実行します。 – TMPilot

+0

+1それについてもう少し考えた後、[関連する質問に答える](http://stackoverflow.com/questions/12374023/store-dates-and-rates-in-a-database)その日付範囲内で発生した変更や変更に対して、日次レコードの管理が容易になります。 OTOH、もし 'start_'と' end_date'の間に一日の更新がないのであれば、どちらにでも行くことができます。 – aneroid

1

デフォルト値がAvailableであるか、Unavailableであるかを決定します。

可能な日付はありますか?使用できない日付はありますか?

デフォルトでは利用可能ですか?

次に、unavailable_startunavailable_endを日付フィールドとして格納できます。単日の場合、unavailable_start = _end。月または任意の期間を照会して、その範囲内のの利用不可期間を返すのは簡単です。そしてjQueryで解析して、それらの日付のカレンダーの詳細を表示させます。

関連する問題