Мы работаем над набором приложений в нашей компании. Каждое приложение имеет различную бизнес-логику, но имеет несколько структур. Например, одно приложение предназначено для «ИТ-услуг», а другое - для «системы обработки пакетов» среди разных зданий компании. Мы хотим создать каждое приложение с отдельными проектами asp.net mvc (Entity framework Code-First). Но проблема в том, что все приложения имеют несколько подобных объектов. Например, все они имеют People
, Buildings
и Floors
Объекты в их dbContext
. а также некоторые другие таблицы, которые имеют отношения к этим аналогичным таблицам. Каков наилучший подход к разработке этих приложений?Лучший подход для общих объектов (таблиц) среди множества приложений
- Создать единую базу данных для всех приложений? что такое побочные эффекты?
- Создайте отдельную базу данных для каждого приложения и дублируйте аналогичные таблицы? (в настоящее время мы работаем над этим, но мы должны написать некоторые задания SQL-сервера, чтобы всегда синхронизировать эти таблицы, поэтому я не думаю, что это хороший подход)
- Создайте базу данных для общих таблиц и других баз данных для каждого приложения. Это приведет к потере отношений между таблицами, а также созданию приложений с несколькими контурами (я предпочитаю это, но я читал, что с помощью Code-First EF и linq невозможно запросить множественные контексты)
- или что-то еще?
Что вы делаете, просят кого-то сделать для вас тяжелую работу. Что вы уже пробовали? Можете ли вы дать ответы на свои вопросы? также, если код разделяет сущности, вы можете просто создать отдельный проект, скомпилировать его.dll и поделиться им между проектами. – Stralos
Действительно ли «Люди», «Здания» и «Полы» фактически являются одними и теми же данными? т. е. может ли строка в «ITServices.People» ссылаться на того же человека, что и в «PackageHandling.People»? Если это так, я не вижу, как № 2 является разумным подходом. Кроме того, ваше решение №3 может иметь ссылочную целостность и не требует множественных контекстов, если ваша система базы данных поддерживает синонимы. В этом случае он будет функционально очень похож на # 1. И вам нужно будет разработать правильный механизм блокировки для общих таблиц. –
спасибо @ setphen.vakil. Я работаю над идеями синонимов – iamnapo