Tenho tabela com dados de milhões de empresas ( name
, address
, phones
etc) no meu banco de dados Postgres. Desejo armazenar horas de trabalho (exemplo: mon-fri: 9:00-12:00, 13:00-18:00; sat: 9:00-13:00
). Como posso armazená-lo para encontrar todas as empresas abertas no horário solicitado?
relate perguntas
-
Posso ativar o PITR depois que o banco de dados foi usado
-
Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo
-
Os procedimentos armazenados impedem a injeção de SQL?
-
Sequências Biológicas do UniProt no PostgreSQL
-
Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?
Armazenaria o horário de funcionamento por dia da semana/por empresa. Para armazenar as horas reais, um intervalo de tempo parece adequado.
Eu usaria 1 para segunda-feira porque essa é a definição ISO e a maioria das funções de data do Postgres funciona assim, então você não precisa fazer a conversão de e para um número base diferente para segunda-feira.
Se houver um intervalo ao meio-dia, isso significaria que o
day_of_week
recebe duas entradas, por exemploPara encontrar as empresas que estão abertas em um dia e horário específicos, você pode usar algo assim:
Uma restrição de exclusão pode ser usada para evitar a sobreposição de horários de funcionamento para o mesmo dia e empresa.