sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan gemmer man en butiks åbningstider i en SQL-database?

En meget fleksibel og godt normaliseret måde ville være at gemme hver åbningsperiode som én række i en tabel. En åbningsperiode kan indkodes som den ugedag, den begynder, tidspunktet på dagen, den begynder, og varigheden, den varer. Hver åbningsperiode er knyttet til en restaurant via en fremmednøgle.

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. skrivbart fælles tabeludtryk og flere insert-sætninger

  2. Tuning af Postgresql-ydeevne og hukommelsesbrug i en python-arbejdsgang

  3. Sådan tjekker du PostgreSQL-versionen

  4. PHP mysqli_real_escape_string returnerer tom streng