Архитектура для нескольких веб-приложений и баз данных - PullRequest
2 голосов
/ 30 марта 2010

Раньше у нас было только одно веб-приложение, но сейчас мы разбиваем его на несколько. Каждый из них будет упакован как отдельный продукт (веб-приложение). У некоторых есть что-то общее, а у некоторых нет.

Первоначально он был написан на php и использовал Postgresql 8.4 и CodeIgniter в качестве фреймворка.

Я ищу несколько хороших советов по настройке нескольких веб-приложений. Все они имеют свои уникальные данные. Некоторые данные в базах данных могут быть общими для некоторых приложений, но не для всех. Все приложения будут на одном сервере и будут иметь какой-то API для манипулирования данными.

Я хочу, чтобы он был структурирован таким образом, чтобы одна учетная запись пользователя могла получить доступ к любому приобретенному продукту. (вроде как в гугл аккаунтах)

Я не знаю, хорошая ли идея иметь несколько баз данных или просто иметь одну большую. в конечном итоге мы будем использовать S3 для некоторых видео и других изображений.

Ваши мысли и предложения очень ценятся.


UPDATE
Спасибо за ответы. Я вижу, как база данных распределена по многим дискам, потому что нам не разрешается удалять какие-либо данные в течение 10 лет.

Также у нас есть много изображений (я забыл упомянуть об этом в оригинальном вопросе), ничего подобного flikr, но приличное количество. Сейчас у нас почти 300 гигов, и из-за новой сделки мы собираем около 500 новых участников в месяц. Прямо сейчас изображения хранятся в нескольких папках в зависимости от их группы. Если на жестком диске не хватает места, где и как я могу получить к ним доступ? Я предполагаю, что это - то, где балансировщики нагрузки входят.

Ответы [ 2 ]

1 голос
/ 30 марта 2010

Одна база данных, вероятно, будет чище хотя бы потому, что вы сможете повторно использовать одно и то же соединение при запросах к нескольким приложениям и присоединяться к ним без каких-либо проблем.Например, добавление списка соответствующих продуктов или видео на боковой панели записи блога, связанной общей системой тегов.Или добавьте возможность следить за Wave в Reader или почтовой ветке и легко ссылаться на электронные таблицы и документы между ними для сравнения в Google.

Общий размер базы данных ни на что не влияет, каждая таблица является отдельнойфайл не зависит от других.Конфликтующие / сбивающие с толку имена таблиц могут быть главной проблемой, так как новые функции добавляются повсюду, но небольшое пространство имен имеет большое значение.

0 голосов
/ 30 марта 2010

Что касается базы данных, вы можете использовать разные SCHEMA в PostgreSQL для разделения разных приложений. Тогда у вас может быть база данных только с одной схемой для одного приложения, но также и со многими схемами для многих приложений.

PostgreSQL может обрабатывать очень большие базы данных, пара ТБ вообще не проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...