Вот моя дилемма,
Я работаю над некоторыми SaaS, используя ASP.net MVC3 и SQL Server.
будет несколько компаний, которые будут использовать программное обеспечение, каждая компания будет иметь несколько пользователей. Чтобы данные случайно не стали видны от одной компании к другой, я настроил базы данных как отдельные базы данных для каждой компании, а затем веб-серверы обрабатывают все остальное: пользовательский интерфейс, логику и т. д.
Я уже могу предвидеть проблему, и мне нужно решить, как лучше с ней справиться, прежде чем она станет реальной проблемой. Имея эти многочисленные базы данных, если все пойдет хорошо в этом году стук по дереву , мы можем потенциально получить 500 клиентов к концу года. Синхронизация схем вручную невозможна по очевидным причинам. VS2010 имеет хороший инструмент сценария сравнения SQL, который будет полезен, но как мне убедиться, что все базы данных имеют последнюю версию?
Задача 2
способ, которым система спроектирована, очень модульный, поэтому клиенты смогут добавлять небольшие виджеты и вещи для своих конкретных нужд, которые будут добавлять новые таблицы в конкретную базу данных. так что в теории каждая база данных будет немного отличаться. Я считаю, что лучший способ справиться с этим - бросить все сценарии изменений, чтобы у вас был
Core.sql
Widget-Map.sql
Widget-HR.sql
etc..
Правильно ли я верю в это мышление или, может быть, есть более практичный способ напасть на эту ситуацию?
Я изучил сравнение Red-Gate SQL и мне это нравится, но он все равно не помогает в ситуации с несколькими базами данных.
чтобы в таком случае я просто создал свои собственные инструменты для обновления схем?
если да, то любые советы, советы, ссылки. было бы очень полезно сделать эту задачу немного менее сложной.
Большое спасибо за любую помощь,
Несколько источников, которые я уже прочитал,
Миграции для Java
http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx