Mysql:我应该将我的数据放入1个表中还是按用户分割?

时间:2010-04-16 17:29:50

标签: php mysql database-design normalization

此数据适用于度假小屋的简易住宿日历。 数据很简单,并存储每个小屋预订的日期。

cols将是cottage_id, booked_from_date, booked_until_date,我希望每位用户每年约60行* 200-300位用户。

我应该把这是一张桌子吗?

3 个答案:

答案 0 :(得分:7)

COTTAGE


cottage_id,
地址?
其他信息......

USER

USER_ID,
名,
其他信息......

COTTAGE_RESERVATION

cottage_id,
USER_ID,
FROM_DATE,
TO_DATE

答案 1 :(得分:1)

,这应放在一张桌子上(适用于所有别墅)。

当您开始将应该在单个表中的数据(可以通过定义类型/ ID分隔)放入单独的表中时,您将遇到整个受伤的世界。

想一想如何编写一个查询来检索所有单位的可用性,在给定日期内,是否达到10-40个或更多单位?

将表规范化为MANY到MANY结构是完全正常的,从用户分隔Cottages并通过表CottageUsers与预定日期链接。

答案 2 :(得分:0)

我认为兰迪的答案很好......另外一个想法就是使用日历表:

<强> COTTAGE_CALENDAR

  • cottage_id
  • 日期
  • reservation_id

为预订的每一天添加一行,并将cottage_id和日期字段组合成一个主键....然后您将阻止超量预订...(将reservation_id添加到 COTTAGE_RESERVATION Randy构建的表,用于关系数据链接)....