2011-07-15 11 views
1

あなたからのアドバイスが必要です。私はデータベースを開発したいと思っています。データベースは約20項目、5つの季節があります。毎シーズンは約2-5週間です。各シーズンには特定の価格が対応します。 データベースは、予約に関する情報(利用可能/予約済み/使用中)を格納します。アプリケーションは、特定の日にユーザーが選択した視覚情報を表示します。日と対応する価格のデータベース

id |_____name____| 01.01 | 01.02 | 01.03 | ................... | 12.31 
_____________________________________________________________ 
1 |_____unit1___| 

1年を通して情報を格納するためにデータベースを設計する方法を教えてください。それに、2月28日と29日の変更が可能なので、私はそれを柔軟に保つ必要があります。

+0

5シーズン×2~5週間= 1年あたり10-25週間。他の27-42週間はどうなりましたか? – Flimzy

答えて

2

年の各日の列は必要ありません。代わりに、私はおそらく3つのテーブルを作成します。

items: 
id 
name 

seasons: 
id 
name 
start_date 
end_date 

prices: 
item_id 
season_id 
price 

あなたの季節は毎年異なる場合、あなたは(年間ので、5行)毎年、明示的に季節ごとに指定することをお勧めします。次に価格表では、アイテムとシーズンの両方に外部キーを使用して価格を入力します。次に、特定の商品の今日の価格を取得する:

SELECT prices.price 
FROM prices 
JOIN items ON (items.id=prices.item_id) 
JOIN seasons ON (seasons.id=prices.season_id) 
WHERE item.name="unit1" 
    AND seasons.start_date >= NOW() AND seasons.end_date <= NOW(); 
関連する問題