我需要你们的建议。我想开发一个数据库,它将存储大约20个项目,有5个季节。每个季节约2-5周。每个季节对应特定的价格。 对于一年中的每一天,数据库将存储关于预订的信息(可用/预订/使用不足)并且应用程序将显示用户在特定日期选择的视觉信息。
id |_____name____| 01.01 | 01.02 | 01.03 | ................... | 12.31
_____________________________________________________________
1 |_____unit1___|
如何设计我的数据库以存储全年的信息。此外,由于2月28日和29天的变化,我需要保持灵活性。
答案 0 :(得分:2)
您不希望每年的每一天都有一列。相反,我可能会创建三个表:
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();