bạn có thể sử dụng bộ redis 'cho trường hợp sử dụng này:
Nếu các khe thời gian luôn là bội số của 15 phút, bạn có thể làm như sau:
1) Có một bộ phổ quát chứa tất cả các khe thời gian. Đây là bội số của 15.
sadd universal 08:00 08:15 08:30 08:45 09:00 ...
2) Đối với mỗi thành viên trong đội có một bộ riêng cho các vị trí đã đặt trước cho họ. Dành cho thành viên1 08:15-08:50 bạn phải khiến anh ấy đính hôn cho đến 09:00 .
sadd member_1 08:15 08:30 08:45 09:00
3) Tương tự cũng làm cho các thành viên khác. thành viên2 08:30-09:30
sadd member_2 08:30 08:45 09:00 09:30
4) Bây giờ đối với mỗi thành viên, bạn có thể nhận được các vị trí miễn phí bằng cách sử dụng
sdiff universal member_1
5) Đối với các khe tổng thể miễn phí. Bạn phải thực hiện hai thao tác.
result = sinter member_1 member_2 ...
sdiff universal result
giao nhau giữa tất cả các thành viên trong nhóm sẽ cung cấp các khoảng thời gian mà tất cả người dùng đang bận. Vì vậy, bạn không thể phân bổ các vị trí đó.
Thực hiện phép toán trừ (khác biệt) với tập hợp phổ quát sẽ cung cấp cho bạn các vị trí tổng thể không bị chiếm dụng.
Hi vọng điêu nay co ich.