У меня есть 5 баз данных, которые представляют разные регионы страны. В каждой базе данных есть несколько сотен таблиц, каждая с 10 000-2 000 000 записей транзакций. Каждая таблица является представлением клиента в соответствующем регионе. Каждая из этих таблиц имеет одинаковую схему.
Я хочу запросить все таблицы, как если бы они были одной таблицей. Единственный способ сделать это - создать представление, объединяющее все таблицы, а затем просто выполнить мои запросы по этому поводу. Однако таблицы клиентов будут постоянно меняться (поскольку мы получаем и теряем клиентов), поэтому мне пришлось бы изменить запрос для моего представления, чтобы включить новые таблицы (или удалить те, которые больше не используются).
Есть ли лучший способ?
EDIT
В ответ на комментарии (я также опубликовал это как ответ на ответ):
В большинстве случаев я не буду удалять таблицы, они останутся для исторических целей. Как я написал в комментарии к одному ответу, идея состояла в том, чтобы сократить время, которое требуется меньшим клиентам (у одного только 10 000 записей), чтобы запросить их собственную историю. Приблизительно 1000 клиентов имеют в среднем 1 000 000 строк (и их число растет). Если бы я добавил все записи в одну таблицу, в этой таблице было бы почти миллиард записей. Я также думал, что планирую на будущее, потому что, когда мы получаем, скажем, 5000 клиентов, у нас нет одной гигантской таблицы, содержащей все записи транзакций (это может быть ошибкой в моем представлении). Так что же, лучше не делить записи, как я сделал? Должен ли я смешать все это в одном столе? Поможет ли индексация по идентификатору клиента задерживать запрос данных для небольших клиентов?