您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

您还应该使用适当的数据类型。不要将时间放在字符串中,因为您可能会以“ 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使用时,请记住要牢记时区。

php 2022/1/1 18:48:07 有302人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶