【问题标题】:Handling Shops Open and Close time处理店铺开闭时间
【发布时间】:2011-11-21 23:11:34
【问题描述】:

在数据库中存储开店和关店时间的最佳方法是什么,以及如何在 PHP 中计算时间?

我想出了这个桌子设计:

+----+---------+----------+-----------+------------+
| id | shop_id | week_day | open_hour | close_hour |
+----+---------+----------+-----------+------------+
|  1 |       3 |        1 | 15:00:00  | 23:00:00   |
|  2 |       3 |        2 | 15:00:00  | 23:00:00   |
|  3 |       3 |        3 | 18:00:00  | 02:00:00   |
|  4 |       3 |        4 | 18:00:00  | 02:00:00   |
|  5 |       3 |        5 | 18:00:00  | 03:00:00   |
+----+---------+----------+-----------+------------+

+------------+---------+------+-----+---------+----------------+
| Field      | Type    | Null | Key | Default | Extra          |
+------------+---------+------+-----+---------+----------------+
| id         | int(11) | NO   | PRI | NULL    | auto_increment |
| shop_id    | int(11) | NO   |     | NULL    |                |
| week_day   | int(11) | NO   |     | NULL    |                |
| open_hour  | time    | NO   |     | NULL    |                |
| close_hour | time    | NO   |     | NULL    |                |
+------------+---------+------+-----+---------+----------------+

例如,星期二 (week_day = 2) 下午 3 点开门,晚上 11 点(星期二)关门。

在星期三(`week_day = 2'),它在下午 6 点开放,并在午夜 2 点之后关闭,这将是星期四。是否应该在午夜后保存在同一行?

假设客户想在周二晚上 10 点下单 (shop_id = 3),根据数据库数据,他们应该可以下单。但是,如果客户想在星期四凌晨 1 点下订单,但数据库显示 week_day = 3 它在 02:00:00 关闭

如何用PHP写出店铺是否开门?

我是否需要更改表格设计以便用 PHP 编写更容易?

【问题讨论】:

    标签: php mysql database database-design


    【解决方案1】:
    【解决方案2】:

    您可以说,如果给定条目的 close_hour 小于 open_hour,则开放时间在第二天。

    或者您可以使用单独的 week_day 列来表示开始和结束时间。

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 2014-05-31
      • 2018-12-08
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      相关资源
      最近更新 更多