gpt4 book ai didi

mysql - 在 MySQL 中存储多年可用日期的最佳方式

转载 作者:可可西里 更新时间:2023-11-01 08:22:19 25 4
gpt4 key购买 nike

我们正在开发一个带有假期套餐的 MySQL 数据库(有前端和后端)。除了存储旅游套餐出发日期的最佳方法之外,我们已经想出了一切。

有些套餐几乎全年每天都有;其他仅在周二和周三开放;其他人在五月和九月之间的每个星期一离开;其他套餐仅在一年中的几个特定日期出发;等等……

我们需要将每次旅行与适当的出发日期相关联。然后,我们需要执行查询,类型为“给我那些在日期 X 可用的包裹”、“给我我可以在一月的第一周拿走的包裹”、“给我那些日期 X 和 Y 之间的旅行”等。

完成此操作的简单方法是为每个包每天存储 365 位。但这在存储空间上显然不是一个很好的解决方案。保留日期范围将是一个很好的解决方案,因为大多数包裹仅在一周中的特定几天可用,因此无法在范围内进行最佳编码。

有人可以帮我们解决这个问题吗?我们如何在数据库中保留旅游出发日期?

非常感谢!

拉蒙

最佳答案

这是我建议的格式。

将可用日期作为间隔(开始日期、结束日期)存储在单独的表格中。一个报价将有一个或多个间隔。对于这些间隔中的每一个,为可用的一周中的几天定义一个 7 位限制过滤器(默认将所有位设置为 1)。如果您只需要一个日期,您可以输入 Start = End。当然,这个模型并没有涵盖所有情况,但对我来说似乎已经足够了,如果报价仅在一周中的特定几天有效,如果您有很多的话,它可能会很有用。

您可能还想从间隔中排除某些日期。为此,您需要另一个表来存储各个日期。

例子:

id | start | end | week_days
1 | 2011-01-01 | 2011-03-31 | 1111100 - The offer is available in any weekday from January to March
2 | 2011-01-31 | 2011-01-31 | 1111111 - An offer available just in one day

如果您想使用异常(exception),您可以在添加报价 #2 的日期使报价 #1 无效:

id | id_period | date
1 | 1 | 2011-01-31

关于mysql - 在 MySQL 中存储多年可用日期的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4016754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com