anda dapat menggunakan set redis untuk kasus penggunaan ini:
Jika slot waktu selalu dalam kelipatan 15 menit Anda dapat melakukan seperti ini:
1) Memiliki satu set universal yang berisi semua slot waktu. Di sini kelipatan 15.
sadd universal 08:00 08:15 08:30 08:45 09:00 ...
2) Untuk setiap anggota dalam tim memiliki set terpisah untuk slot yang dipesan untuk mereka. Untuk anggota1 08:15-08:50 Anda harus membuatnya bertunangan sampai 09:00 .
sadd member_1 08:15 08:30 08:45 09:00
3) Demikian juga untuk anggota lainnya. member2 08:30-09:30
sadd member_2 08:30 08:45 09:00 09:30
4) Sekarang untuk setiap anggota Anda bisa mendapatkan slot gratis menggunakan
sdiff universal member_1
5) Untuk slot keseluruhan gratis. Anda harus melakukan dua operasi.
result = sinter member_1 member_2 ...
sdiff universal result
memotong semua himpunan anggota akan memberikan slot waktu di mana semua pengguna sibuk. Jadi Anda tidak dapat membagikan slot tersebut.
Melakukan operasi pengurangan (diff) dengan himpunan universal akan memberi Anda keseluruhan slot yang bebas untuk ditempati.
Semoga ini membantu.