В настоящее время я работаю над проектом C # / ASP.NET, на котором будут размещаться несколько разных веб-сайтов электронной коммерции, все из которых будут работать в одном приложении.
Я использую LinqToSql (скоро перейду на PLINQO) для доступа к моей базе данных. База данных содержит как информацию о структуре сайта (страницы, ...), так и данные о товарах / заказах / пользователях.
Мой вопрос заключается в том, должен ли я использовать только одну базу данных для всех веб-сайтов или создать новую базу данных (той же модели) для каждого нового веб-сайта?
Сейчас я использую одну базу данных (с идентификаторами сайтов в некоторых таблицах), но у меня есть серьезная проблема с безопасностью, я не могу просто сделать резервную копию / восстановить базу данных для ОДНОГО сайта, если что-то пойдет не так (например, кто-то сотрет все продукты на ОДНОМ сайте), и это важное требование к заявке.
Так что мне было интересно, каковы хорошие практики в этом случае?
Есть ли большие минусы, если расщеплять БД?
(Я должен был бы внести изменения в несколько баз данных вместо одной в случае структурных изменений, но я думаю, что смогу сделать систему версий / обновлений БД).
Как с этим справляются существующие CRM?
Это проблема с производительностью, если на сервере базы данных размещается много разных баз данных?
Сложный инструмент резервного копирования / восстановления будет лучше?
подвопрос:
Чтобы упростить репликацию веб-сайта, я также могу разделить чистые данные CMS (страницы, тексты и т. Д.) В одну БД и данные электронной торговли (продукты / категории / заказы в другой). Это хорошая идея?
Этого можно достичь с помощью некоторых функций выбора / вставки, но, конечно, проще всего скопировать базу данных.
PS: извините за ок. английский;)