Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Interseção do Mongodb com intervalo de tempo


você pode usar os conjuntos do redis para este caso de uso:

Se os intervalos de tempo estiverem sempre em múltiplos de 15 minutos, você pode fazer assim:

1) Tenha um conjunto universal contendo todos os horários. Aqui múltiplos de 15.
sadd universal 08:00 08:15 08:30 08:45 09:00 ...

2) Para cada membro da equipe, tenha um conjunto separado para os slots reservados para eles. Para membro1 08:15-08:50 você tem que deixá-lo noivo até 09:00 .
sadd member_1 08:15 08:30 08:45 09:00

3) Da mesma forma faça para outros membros também. membro2 08:30-09:30
sadd member_2 08:30 08:45 09:00 09:30

4) Agora, para cada membro, você pode obter os slots gratuitos usando
sdiff universal member_1

5) Para os slots gerais grátis. Você tem que fazer duas operações.
result = sinter member_1 member_2 ...
sdiff universal result

a interseção de todo o conjunto de membros fornecerá os intervalos de tempo em que todos os usuários estão ocupados. Então você não pode alocar esses slots.

Fazer uma operação de subtração (diff) com o conjunto universal fornecerá os slots gerais que estão livres para serem ocupados.

Espero que isto ajude.