Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Mongodb-Schnittpunkt mit Zeitbereich

Sie können Redis-Sets für diesen Anwendungsfall verwenden:

Wenn die Zeitfenster immer Vielfache von 15 Minuten sind, können Sie folgendermaßen vorgehen:

1) Haben Sie ein universelles Set, das alle Zeitfenster enthält. Hier Vielfache von 15.

sadd universal 08:00 08:15 08:30 08:45 09:00 ...

2) Für jedes Mitglied im Team haben Sie ein separates Set für die für sie gebuchten Slots. Für Mitglied1 08:15–08:50 Sie müssen ihn bis 09:00 verloben .

sadd member_1 08:15 08:30 08:45 09:00

3) Gleiches gilt auch für andere Mitglieder. Mitglied2 08:30–09:30

sadd member_2 08:30 08:45 09:00 09:30

4) Jetzt können Sie für jedes Mitglied die kostenlosen Slots mit

erhalten
sdiff universal member_1

5) Für die gesamten Slots frei. Sie müssen zwei Operationen durchführen.

result = sinter member_1 member_2 ...
sdiff universal result

das Schneiden aller Mitgliedersätze ergibt die Zeitschlitze, in denen alle Benutzer beschäftigt sind. Sie können diese Slots also nicht zuweisen.

Wenn Sie eine Subtraktionsoperation (diff) mit dem universellen Satz durchführen, erhalten Sie die gesamten Slots, die belegt werden können.

Hoffe das hilft.