sql >> Databáze >  >> RDS >> PostgreSQL

Jak uložit otevírací dobu prodejny do SQL databáze?

Velmi flexibilním a dobře normalizovaným způsobem by bylo uložit každé období otevření jako jeden řádek v tabulce. Otevírací doba může být zakódována jako den v týdnu, kdy začíná, čas dne, kdy začíná a jak dlouho trvá. Každá otevírací doba je propojena s restaurací prostřednictvím cizího klíče.

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. Oříznutí více tuku v protokolu transakcí

  2. Poradenství při strukturování systému komentářů

  3. JDBC ResultSet getDate ztrácí přesnost

  4. Chyba syntaxe SQL s podřetězcem a charindexem