【问题标题】:SQL one-to-many relationship for very small 'many' table非常小的“多”表的 SQL 一对多关系
【发布时间】:2021-07-01 10:45:36
【问题描述】:

我有一个“store_location”表,它与关闭和开放时间有一对多的关系,这只是为了跟踪服务时间,以及这些时间在哪些工作日有效。因此,如果我要为其创建一个新表,则需要一个“工作日”列、“营业时间”和“关闭时间”。

但是感觉有点没必要为此创建一个新表。来自 NoSQL 背景,我很想创建一个列“service_times”,它是一个数组数组或对象数组。如果“多”表比这更简单,例如我也想在标记公共假期时做同样的事情,所以我有另一个表只是为了跟踪关闭/打开日期......一个 2 列的表。

这里的最佳做法是什么?

【问题讨论】:

标签: sql database database-design


【解决方案1】:

存储信息的最佳方式取决于它的使用方式。而且调度数据可能很难很好地表示。

如果只是选择商店营业时间进行显示,那么如何储存它们并不重要。数组、blob、规范化格式或任何其他都可以。

更有可能的是,商店营业时间将用于过滤。这会变得很麻烦。

在最简单的情况下,星期和小时之间存在直接映射,并且服务时间从不包括午夜。在这种情况下,您可以拥有列、数组或单独的表,其中包含每天的开始和结束时间。

但是,如果您想将午夜包括在内并有单独的假期时间,那就更难了。鉴于复杂性。我可能会建议有一个位置日历表,每个位置和日期都有行。如果某些东西在午夜之后打开,那么表格中将有两行(例如 00:00 - 02:00,然后是 17:00-24:00)。然后,您将在未来几年内预先填充此表。并且可以将假期考虑在内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多