В настоящее время работает над системой управления бронированием. Это многопользовательское приложение, и будет около 50 арендаторов.Архитектура данных многоуровневых данных
Мы планируем провести это ASP.Net MVC4/SQL Server 2008
приложение в некоторых хостинг-провайдера, как winasp.net и т.д. (все же решить)
Business Model Diagram
Есть много уровней пользователей, как суперадминистратор , Администратор Арендатора, Обслуживание Клиентов, Врачи описаны в вышеуказанных фото.
Для достижения этой цели в качестве модели базы данных, мы выбрали Shared Database with Shared Schema
подход, упомянутый в MSDN Multitenant Data Architecture
Mean мы добавили столбец был сделан TenantId in each table
Наша общая база данных & разделяет решение схемы на основе ниже
Количество арендаторов (50 +)
Легко разделить общие метаданные между арендаторами
Перемещение большого арендатора (один/два) в отдельном случае, если арендатор имеет больший объем данных
Мы в настоящее время ведется, и мы до сих пор боятся ниже вопросов для решения
Data Security -> Everytime необходимо пройти/проверить TenantId
резервное копирование для одного жильца -> Нужно написать запрос SQL для резервного копирования и принимая во внимание внешний ключа/автоматическое приращение является головной болью при создании резервной копии
объема данных. Единая база данных хранит все данные арендатора, запрос данных медленно
Indexing (Не уверен, нужно ли нам индексировать все колонки TenantId в каждой таблице, так как она включает в себя всего ГДЕ
Есть и другие варианты, такие как
- Единая база данных/арендатор
- Общая база данных, отдельная схема
Также This Article
добавил еще некоторые подходы
Мы хотели бы получить некоторые рекомендации/лучший дизайн для нашего текущего проекта.
Новый подход соответствует выше бизнес-схема
администратор/клиент пользователь услуг арендатор должен быть в состоянии видеть суб-арендаторов записи
Запрос performamce
Общий обмен метаданных между арендатором
Наниматель Конкретные мета данные
Арендатором Конкретные поля данных (по желанию)
Простое резервное копирование
Я думаю, что это слишком широко, чтобы отвечать на один вопрос. Возможно, разумно разбить их на конкретные вопросы о проблемах программирования, с которыми вы сталкиваетесь с вашей реализацией. –
Этот вопрос я поднял, чтобы получить минимальную информацию/советы, которые помогут мне правильно реализовать. Достаточно совета более высокого уровня, после прочтения многих статей и не нашел правильной подсказки, которую я поднял здесь. – Billa
Я не мог предложить 200 бонусов, так как нет ссылки на бонусы, потому что она закрыта :( – Billa