Программное обеспечение как услуга - База данных - PullRequest
1 голос
/ 19 сентября 2009

Если я создаю веб-приложение CRM для продажи в качестве службы членства, каков наилучший метод проектирования и развертывания базы данных?

Есть ли у меня 1 база данных, содержащая 100 записей в таблице, или развернуть несколько баз данных для разных клиентов?

Действительно ли важно использовать одну базу данных, поскольку я считаю, что такие сайты, как Flickr, используют их?

Ответы [ 3 ]

6 голосов
/ 19 сентября 2009

Несколько клиентов называется «мультитенант».См., Например, эту статью " Многопользовательская архитектура данных " от Microsoft.

3 голосов
/ 19 сентября 2009

В ситуации, подобной системе CRM, вам, вероятно, понадобятся отдельные экземпляры базы данных для каждого клиента.

Я говорю это потому, что если вы хотите более крупных клиентов, в большинстве компаний действуют политики безопасности в отношении данных клиентов. Если вы храните данные о своих клиентах в той же базе данных, что и другой клиент, вы рискуете раскрыть конфиденциальные данные одной компании другой компании (конкуренту и т. Д.).

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

0 голосов
/ 19 сентября 2009

В долгосрочной перспективе проще всего поддерживать одну базу данных с данными нескольких клиентов. Подумайте о развертывании, резервном копировании и т. Д. Однако это не мешает иметь несколько экземпляров этой базы данных, каждый из которых содержит подмножество полного набора данных клиента. Я бы порекомендовал увеличить количество баз данных после того, как вы установили полезность / желательность вашего продукта. Наличие сложной инфраструктуры не требуется, если у вас нет трафика ....

Итак, я бы просто поместил идентификатор клиента в соответствующие таблицы и улыбнулся, когда войдет клиент 4, а степень вашего нового развертывания составляет один оператор вставки.

...