当前位置: 首页 > 面试题库 >

使用数据库,php,js确定餐厅是否现在营业(就像yelp一样)

司徒俊健
2023-03-14
问题内容

我想知道是否有人知道yelp如何确定哪些餐馆“现在营业”?我正在使用html / javascript /php开发类似的应用程序。我每天都会在数据库中有一列,并以“ 2243”格式(晚上10:43
pm)写以逗号分隔的小时数。因此,例如,如果一家餐厅开门供应午餐和晚餐,则可能是“
1100,1400,1700,2200”。然后我会检查(使用js)当前时间是否落在当前日期的范围之一内。我还希望能够确定餐厅是否“今晚营业”,“营业至较晚”等,对于那些我想我会检查营业范围是否与某些营业范围重叠的人。

有一个更好的方法吗?特别是如何将小时数存储在数据库中,然后确定它们是否与给定的时间集重叠。

谢谢。


问题答案:

您肯定要重新设计数据库。像这样将多个值放到单个列中,这严重违反了规范化规则,并且在以后会引起很多麻烦。单个列应始终包含单个信息。

您还应该使用适当的数据类型。不要将时间放在字符串中,因为您可能会以“ foo”作为时间结尾,然后您会怎么做?

相反,您可能想要的是:

CREATE TABLE Restaurants
(
    restaurant_id    INT            NOT NULL,
    restaurant_name  VARCHAR(40)    NOT NULL,
    CONSTRAINT PK_Restaurants PRIMARY KEY CLUSTERED (restaurant_id)
)
CREATE TABLE Restaurant_Hours
(
    restaurant_id    INT         NOT NULL,
    hours_id         INT         NOT NULL,
    day_of_week      SMALLINT    NOT NULL,
    start_time       TIME        NOT NULL,  -- Depends on your RDBMS and which date/time datatypes it supports
    end_time         TIME        NOT NULL,
    CONSTRAINT PK_Restaurant_Hours PRIMARY KEY CLUSTERED (restaurant_id, hours_id)
)

然后,您可以轻松地检查在给定时间营业的餐厅:

SELECT
    R.restaurant_id,
    R.restaurant_name
FROM
    Restaurants R
WHERE
    EXISTS
    (
        SELECT *
        FROM
            Restaurant_Hours RH
        WHERE
            RH.restaurant_id = R.restaurant_id AND
            RH.start_time <= @time AND
            RH.end_time >= @time AND
            RH.day_of_week = @day_of_week
    )

如果您的时隙跨越午夜,则需要两行-第一行为午夜,第二行为午夜-“ x”。另外,从GUI使用时,请记住要牢记时区。



 类似资料:
  • 餐馆放置(Idle Restaurant)汉化版,是一款策略挂机放置类小游戏。 游戏开始你需要在厨师乔治的指导下进行工作和获取经营餐馆的知识,初期你需要通过刷碗来赚取一些初始资金,之后逐步实现你的餐馆梦。

  • 本文向大家介绍C#实现餐厅管理系统,包括了C#实现餐厅管理系统的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#实现餐厅管理系统的具体代码,供大家参考,具体内容如下 部分代码: fm_change_password.cs fm_login.cs 源码下载:C#实现餐厅管理系统 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我试着在香港列出所有餐馆和他们的相应网址。目前,在我下面的代码中,我能够刮取第一页和第二页。但我希望底部的for循环更具动态性,并不断刮取,直到达到我在range()中指定的条目数量。 我在这方面还是个新手,所以任何帮助都会很棒。

  • 问题内容: 有没有办法检查输入流()是否有数据? 从GO的初始stdin中读取帖子?显示了如何读取数据,但是不幸的是,如果没有数据通过管道传送到stdin中,则会阻塞。 问题答案: os.Stdin与其他任何“文件”一样,因此您可以检查其大小: 我将其构建为“管道”可执行文件,其工作方式如下:

  • 我想知道是否有一种方法可以确定在数据库上启用了PostGis。 我试图用我的开发机器复制我的正式服,我不确定我的开发机器上的数据库是否启用了PostGIS或postgis_topology或两者兼而有之。 我试着四处寻找解决方案,但什么也想不出。 这方面的任何建议都会有帮助。

  • 自我介绍 实习经历和项目经历的一些深度问题 对于餐饮行业的需求和重点有哪些理解 简单的sql group by和select 题 如果一个区域项目需要以下信息,你有什么思路和操作想法: 区域内餐饮营业额总和  如何构成的行业生态(火锅,西餐,烧烤等) 食材需求量多大 面试结束后面试官很详细的解答了上面那个区域问题,实操和理论果然差很多hhhhh 面试官直接给了结果说通过了,但是我毕业证还没拿到,不