2013-02-05 3 views
1

Я хотел бы создать облачное бизнес-решение с 4 таблицами по умолчанию, пользователь может добавить настраиваемое поле (столбец?) Или добавить пользовательский объект (таблица?).Хранение нескольких логических баз данных в одной физической базе данных

Моя первая мысль была, чтобы создать новую базу данных для каждой учетной записи, но есть ограничение числа баз данных на экземпляре SQL Server,

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

Третье решение: создать 4 уникальные таблицы с дискриминантным столбцом (ACCOUNT_ID), если пользователь хочет, чтобы новое поле добавляло таблицу соединений, выделенную для этого ACCOUNT_ID, если он хочет, чтобы новый объект создал новую таблицу.

Что вы думаете? Кто-нибудь знает, как существующие облачные решения хранят данные? (например, salesforce)

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

+2

Ну, вы можете спросить, как работает SQLFiddle. , , и это объясняется здесь (http://sqlfiddle.com/about.html#howWorks). –

+3

Здесь есть интересная статья о возможных многопользовательских архитектурах: http://msdn.microsoft.com/en-us/library/aa479086.aspx Было бы полезно прочитать, если вы приступаете к реализации такого проекта. – John

+1

Мне нравится решение схемы, потому что было бы легко предоставить заблокированное разрешение определенным пользователям для конкретной схемы и было бы легко динамически выполнить скрипт логики запросов на основе некоторой переменной бизнес-объекта. –

ответ

0

Спасибо всем за ваши предложения, которые мне очень помогли, особенно статья Microsoft, предложенная Джоном.

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

Смежные вопросы