4

我需要存储 200 多个独特业务(并且还在增长)的营业时间。每个企业都有不同的营业时间,有些则在午餐时间休息。此外,一家企业可能一天早上 8 点开门,另一天早上 9 点开门。我最初的想法是构建一个 MySQL 表来处理这个问题,但后来我考虑将它存储在一个单元格中并将结果分解出来。爆炸出来,我会像这样存储它......

// "8:00-17:00|9:00-18:00|8:30-12:30,13:30-17:30|8:00-17:00|8:00-17:00|8:00-11:00||"

// For Day Data:             Explode "|"
// For Open/Close Data:      Explode "-"
// For Converting to am/pm:  Explode ":"

对于单单元存储,它是对从 clientData 表(已经循环通过)中提取的数据进行数组处理。使用单独的 MySQL 表,我正在查看每个客户端 7-14 行(1,400 - 2,800 行开始),具体取决于其构建方式。一种方式比另一种方式更好。你会如何处理这个问题?

谢谢!

期望的输出

<div class="businessHours" itemscope itemtype="http://schema.org/LocalBusiness">
    <time itemprop="openingHours" datetime="Mo 8:00-17:00"><strong>Monday:</strong> <span>8:00am-5:00pm</span></time>
    <time itemprop="openingHours" datetime="Tu 9:00-18:00"><strong>Tuesday:</strong> <span>9:00am-6:00pm</span></time>
    <time itemprop="openingHours" datetime="We 8:30-12:30,13:30am-17:30"><strong>Wednesday:</strong> <span>8:30am-12:30pm, 1:30pm-5:30pm</span></time>
    <time itemprop="openingHours" datetime="Th 9:00-18:00"><strong>Thursday:</strong> <span>9:00am-6:00pm</span></time>
    <time itemprop="openingHours" datetime="Fr 8:00-17:00"><strong>Friday:</strong> <span>8:00am-5:00pm</span></time>
    <time itemprop="openingHours" datetime="Sa 8:00-1:00"><strong>Saturday:</strong> <span>8:00am-11am</span></time>
    <time itemprop="openingHours" datetime="Su "><strong>Sunday:</strong> <span>Closed</span></time>
</div>
4

2 回答 2

2

我肯定会使用表格您可以通过两种方式构建它:

垂直表:id,Store ID, Day Of Week, Hours

水平表:id,Store ID, M,T,W,TH,F,S,SU

每个都有优点和缺点,但是按照这种方法,您可以快速列出特定日期的所有商店营业时间。否则,您将不得不解析每一行并将其分解到当天的位置,或者使用类似征税的语句。

于 2013-05-07T15:53:08.360 回答
1

我将对这里的流行逻辑提出反驳。如果,如您所说,您不希望将来某个时候需要查询特定的营业时间数据,那么我建议整个数据集合只是业务的一个属性,可以存储像这样以序列化的方式。这将使每个业务的数据写入和检索更加优化(消除跨多个表的更复杂的查询)。

我建议您也可以将数据存储为序列化格式(也许是 JSON,也许是 PHP 的本机序列化格式),这样在检索时您可以简单地反序列化数据并使用它。

现在,如果您确实认为您需要查询营业时间信息(即显示现在谁在营业、谁在星期六营业等信息),那么我会听取该线程上大多数其他评论者的建议并将数据。

于 2013-05-07T17:13:38.097 回答