PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara menyimpan jam buka toko dalam database SQL?

Cara yang sangat fleksibel dan dinormalisasi dengan baik adalah dengan menyimpan setiap periode pembukaan sebagai satu baris dalam sebuah tabel. Periode pembukaan dapat dikodekan sebagai hari kerja dimulai, waktu hari itu dimulai dan durasi berlangsung. Setiap periode pembukaan ditautkan ke restoran melalui kunci asing.

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. Driver HikariCP Postgresql Mengklaim tidak menerima URL JDBC

  2. Mengubah Hasil Query PostgreSQL ke XML, menggunakan PHP DOM

  3. Format Angka dengan Koma di PostgreSQL

  4. Cara membuang PGresult untuk perintah non-SELECT

  5. PostgreSQL:tampilkan perjalanan dalam kotak pembatas