PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để lưu trữ giờ mở cửa của một cửa hàng trong cơ sở dữ liệu SQL?

Một cách rất linh hoạt và được chuẩn hóa tốt sẽ là lưu trữ mỗi khoảng thời gian mở cửa dưới dạng một hàng trong bảng. Khoảng thời gian mở cửa có thể được mã hóa là ngày bắt đầu trong tuần, thời gian trong ngày bắt đầu và thời lượng kéo dài. Mỗi khoảng thời gian khai trương được liên kết với một nhà hàng thông qua một khóa ngoại.

CREATE TABLE opening_period
             (restaurant integer,
              weekday integer,
              time time,
              duration interval,
              PRIMARY KEY (restaurant,
                           weekday,
                           time,
                           duration),
              FOREIGN KEY (restaurant)
                          REFERENCES restaurant
                                     (id)
                          ON DELETE CASCADE,
              CHECK (weekday >= 0
                     AND weekday < 7),
              -- prevent overlapping opening periods
              EXCLUDE USING gist (restaurant WITH =,
                                  tsrange('epoch'::timestamp + time + weekday * INTERVAL '1 days',
                                          'epoch'::timestamp + time + weekday * INTERVAL '1 days' + duration,
                                          '[)') WITH &&));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để hiển thị cha mẹ trên hệ thống phân cấp sql?

  2. Sử dụng python sqlalchemy để thực hiện các truy vấn thô với câu lệnh WITH

  3. Cần hỗ trợ với chức năng và kích hoạt Postgres

  4. PostgreSQL:cách cập nhật các hàng trong CTE

  5. Tìm kiếm toàn văn kể từ PostgreSQL 8.3