Дайте мне посмотреть, могу ли я дать лучший обзор проблемной области:
В поисках решения для "предприятия", где n производственных площадок будут увеличиваться.
Мы обрабатываем данные для создания документов в Интернете и для печати.
Система будет управлять потоком процессов для передачи файла данных из представления (через централизованный веб-сайт) на принтер или в Интернет или в оба.
Каждый производственный сайт имеет своих клиентов и т. Д. Вся эта информация будет храниться в базе данных. Большая часть администрирования этой информации будет происходить на центральном сайте
Мы обрабатываем все данные на одном сервере из-за лицензионных ограничений в используемом нами программном обеспечении.
Таким образом, будет демон, который просматривает очередь (в базе данных) и обрабатывает задания. Поток будет управляться столбцом состояния в базе данных, чтобы другие процессы знали, где он находится.
Для огромного объема данных используется наш веб-инструмент. Нам нужно хранить поисковые индексы для каждого документа, который мы производим для Интернета. Это становится довольно большим довольно быстро. Эти записи не сохраняются вечно, но они будут большими (примерно 500 миллионов строк), по крайней мере, большую часть времени.
Я подумал, что избавиться от проблемы с размером таблицы - это отдельная БД, а также возможность разделить рабочие сайты на разных серверах.
Дело в том, что я не знаю, когда будет приобретен другой сайт или насколько он будет большим.
Полагаю, я хочу пресечь масштабируемость в зародыше, а не через год приобрести сайт, который подталкивает нас к краю и не должен покупать лучший сервер для размещения монстра. К сожалению, деньги - это объект.
Я бы даже не рассматривал базы данных, если бы рост не был неизвестен.
Я также рассмотрел возможность создания отдельных баз данных полностью для каждого сайта. Это значительно усложняет администрирование наших приложений, а также другие проблемы.
Я прошу прощения за рассеянный ответ. Это был 12-часовой рабочий день. Я действительно мог бы продолжаться вечно, но, надеюсь, это в любом случае даст немного больше понимания.
Пример отношения с одной БД
сайт имеет много клиентов
у клиентов много отправителей
податели имеют много представлений
У подачи есть много документов
документы имеют много индексов
Чтобы я мог легко посчитать количество документов для клиента с помощью объединений