Не очень хорошая идея давать каждой организации свою таблицу задач. Это потребует физических изменений в базе данных, когда новая организация появится на борту, и возможные изменения кода для чтения из новых таблиц (хотя вы можете изменить префикс динамически). У вас также есть больше накладных расходов, если вы хотите изменить структуру в будущем, например, добавление новых полей. Это ограничит вашу способность переделывать и улучшать со временем. Распределение нагрузки по нескольким таблицам означает, что вам нужно синхронизировать индексы и другие подобные вещи. Резервное копирование становится более громоздким, так как задействовано несколько таблиц.
Я бы подумал, что лучшим решением будет сделать это управляемым данными со структурой, подобной приведенной ниже:
**OrganisationTable**
ORGANISATION_ID
**TaskTable**
TASK_TYPE
**TasksOrganisationStatusTable**
TASK_TYPE
STATUS (Boolean)
ORGANISATION_ID
**TasksTable**
ORGANISATION_ID
TASK_TYPE
DUE_DATE
etc.
Таким образом, вы можете динамически изменять активные задачи, создавать новые организации и т. Д. Используйте кэширование в своем приложении для повышения производительности.