Идея использования разных таблиц для каждой команды (несмотря на то, что успешные приложения могут использовать ее), честно говоря, довольно наивна и имеет серьезные подводные камни, когда вы принимаете во внимание обслуживание ... Просто подумайте, что вы будете вынуждены делать, если выобнаружите, что вам нужна новая таблица или даже просто индекс ... вам в конечном итоге понадобится писать сценарии DML в качестве шаблонов и использовать некоторое (специальное) программное обеспечение для запуска их во всех командах ...
Как упоминалось в других ответах (Quaternion's и Octav's), я думаю, что у вас есть два жизнеспособных варианта:
- Внесите "команду" в вашу модель данных
- Разделите данные в разных базах данных/ schemas
Чтобы выбрать наиболее подходящий для вас вариант, вы должны решить, действительно ли «команда» - это то, на что вы можете разбить свой набор данных, или это действительно еще одна сущность, которую вы хотите использовать.принесите в свою модель данных.
Возможно, вы заметили, что я использую здесь «расщепление» вместо «разбиение» - это потому, что последний термин является родовымИспользуется администраторами баз данных для обозначения того, что мы могли бы назвать «осколками» - «расщепление» является более строгим термином.
Расщепление жизнеспособно только в том случае, если:
- сущностей в разных разделах когда-либо не нужно ссылаться друг на друга
- нет запроса когда-либо не требуется доступ к данным из разных разделов (это относится и к запросам, используемым для создания отчетов)
Как вы, наверное, видите, разделение в этом смысле не очень привлекательно (может быть, сейчас все будет хорошо, но что, если вы захотите добавить новые функции?), Поэтому мой совет заключается в том, чтобыперейдите к решению «Команда - это сущность» .
Также обратите внимание, что поддерживать набор баз данных / схем на самом деле сложнее, чем поддерживать одну (хотя, возможно, немного более сложную) базу данных ...еще раз подумайте, какие шаги нужно предпринять, чтобы добавить индекс в производственную систему ...
Единственный недостаток решения с одной базой данных проявляется, если у вас в конечном итоге несколько внешних интерфейсов(возможно, из-за настроек для конкретных клиентов): изменения в общей базе данных могут повлиять на все приложения, использующие ее, поэтому вам может потребоваться согласовать обновления для различных веб-приложений, чтобы минимизировать риски (однако обратите внимание, что в большинстве случаев высможете менять базу без нарушения совместимости).