Проектирование БД для двух систем.
От: corpse56  
Дата: 11.09.19 15:23
Оценка:
Здравствуйте!
Надеюсь, что выбрал правильный раздел форума.
Вопрос в следующем. Есть одна организация, которая выпускает изделия. Для этого приобретаются комплектующие. Бухгалтерия этой организации использует 1С для заказа комплектующих. Шло время и организация расширялась. Уже было невозможно контролировать этапы выпуска изделий "вручную". Для контроля выпуска изделий организация заказала разработку программы на .NET с собственной базой на MS SQL и большой кучей бизнес-логики. Какое-то время всё шло хорошо. Системы (1С и программа на .NET) никак не пересекались. Но организация получила большой заказ и расширилась ещё больше. Программа .NET перестала справляться со своей задачей и никто толком не понимает что и где и на каком этапе. Появилось очень много новых вводных. Сейчас наступил момент, когда нужно что-то предпринять. Организация накидала примерное ТЗ на то, что они хотят. Из него ясно, что системы теперь должны и будут пересекаться. Встал вопрос с базами данных. Для примера, база комплектующих теперь нужна и в 1С, и в программе .NET. У программы .NET есть своя собственная база, которая связывает много сущностей внешними ключами.
Варианты:
1. Добавить новую сущность "Комплектующие" в базу MS SQL. Проставить внешние ключи, обеспечивая целостность данных. Заставить 1С брать данные из этой базы. Разграничить доступ на запись в эту базу из 1C стандартными средствами или через апи.
2. Добавить новую сущность "Комплектующие" в базу 1С. Забыть про целостность данных и внешние ключи. Программа .NET будет брать данные из базы 1С (это ох как не нравится...)
3. Добавить новую сущность "Комплектующие" в обе базы. Следить за двумя базами сразу. Обеспечить сильную синхронизацию. (возможно ли это? по-моему игра не стоит свеч)
4. Грохнуть программу на .NET и перенести всю базу и логику в 1С. (на это не пойдут скорее всего, так как уже очень много понаписано)
5. Наплевать на 1С (пусть какие базы хотят, такие и делают) и сделать интеграцию с помощью, как бы это сказать, оповещений (электронных документов). Программа .NET будет посылать оповещения в 1С, что надо, к примеру, начать процесс закупки таких-то комплектующих (или ещё какое-то действие нужно совершить). А все статусы брать из программы .NET. Но тут получается слабый контроль за исполнением, хотя может быть и нет, если получше продумать этот способ.

Скажите, пожалуйста, может кто-то сталкивался с подобными задачами? Какие пути решения применялись и почему? Я не силён в таком деле, может я что-то упустил в своём рассказе, что может повлиять на выбор пути?

ps
комплектующие я привёл для примера. у этих систем пресекаться будут не только комплектующие.

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.