При проверке конкретной даты, ищем периоды, для которых искомая дата попадает в интервал от A до B, а день недели совпадает с искомым. После этого - только проверить чередование недель (если это вообще требуется).
Какая база данных лучше всего подходит для хранения и расчета?Да практически любая.
Должно ли это вычисляться на стороне базы данных или лучше сделать выборку и вычислить на стороне бэкенда (ужас при большом количестве клиентов)?С данными работает сервер баз данных. Всё, точка. Исключения - есть, не даже сказать что они редкие, но не на этом уровне.
Программное обеспечение должно вычислить, какие клиенты будут обслуживаться в определенную дату в будущем.Должна существовать определённая разумность. Да, можно рассчитать на сто лет вперёд - но зачем? это даже на экране не поместится, да и если бы поместилось - оно просто не воспримется. А расчёт на вменяемый период - это достаточно легко и быстро.
...
Должен ли это быть предварительно рассчитано и как это сделать на неопределенный период времени?
из которых 1ms - это freeing items и cleaning up