Вы не предоставили достаточно информации. Почти при любых обстоятельствах (см. Ниже исключения) вам нужен один набор таблиц для всех клиентов. Вот несколько причин:
- Производительность. Распространение таблиц означает, что данные распределяются по большему количеству страниц данных, поэтому у вас есть много частично заполненных страниц данных. База данных больше, а обработка медленнее.
- Эффективность кодирования. Если все таблицы для клиентов имеют разные имена, тогда весь код является динамическим SQL. Это сложнее поддерживать.
- обслуживание. Добавление столбца или индекса очень трудоемко при наличии миллиардов похожих таблиц.
- Analytics. Когда подобные данные распространяются по таблицам, очень трудно ответить на такие вопросы, как «Какой клиент имеет больше продуктов?».
- Security. Предоставление прав доступа для одного набора таблиц менее подвержено ошибкам, чем для миллиардов таблиц.
И, без сомнения, я пропустил несколько причин. Вы можете видеть, что почти одна задача - создать единую базу данных с небольшим количеством таблиц.
В некоторых ситуациях могут потребоваться отдельные базы данных . Я не могу придумать вескую причину иметь отдельные таблицы для каждого клиента в одной базе данных.
Причина номер один - безопасность и изоляция. Может быть деловая или даже юридическая причина для хранения данных в «физически» отдельных базах данных, чтобы дополнительно минимизировать вероятность того, что один клиент увидит данные другого клиента (случайно или путем взлома).
Другая причина была бы, если бы у клиентов были индивидуальные решения. То есть есть индивидуальные настройки для каждого клиента. Я все еще был бы склонен попытаться поместить это в решение для одной базы данных, но это может оказаться невозможным.
С этим может быть связано приложение, которое вы собираетесь поддерживать как в облаке, так и локально. В этом случае отдельные базы данных для каждого клиента, вероятно, упростят дизайн приложения.
Но, как правило, вы должны хранить данные в довольно нормализованной единой базе данных, с одной таблицей на сущность.