Запрос отзывов / мыслей о шаблоне или передовой практике для решения ситуации, с которой я сталкивался несколько раз за эти годы, но я не нашел ни одного решения, которое бы решало его так, как мне бы хотелось.
Вот фон.
Компания имеет 3 приложения, поддерживающие 3 отдельных «направления деятельности», которые очень тесно связаны друг с другом. Два приложения буквально копируют / вставляют из оригинала. Приложения должны иметь возможность расти с разной скоростью и иметь несколько разные функциональные возможности. Основные различия в функциональности связаны с полями ввода данных. Различия по сути делятся на одну из следующих категорий:
- Один экземпляр имеет несколько полей
что другой не делает.
- Строковое поле имеет максимальную длину 200 в одном
экземпляр, но 50 в другой.
- Поля поиска / ссылки имеют
разные базовые значения (т.е.
те же структуры таблиц, но ближайшие
из разных баз данных).
- Поле определяется как предоставленное пользователем,
свободный текст, значение в одном экземпляре,
но поиск / ссылка в другом.
Проблема заключается в том, что в компании существуют другие приложения, которым необходимо использовать данные из этих трех отдельных приложений, но в идеале они должны взаимодействовать с ними централизованно / централизованно (т.е. через центральную службу, а не через 3 отдельные службы). Мой вопрос заключается в том, как обращаться, в частности, с пунктом D выше. Я думаю, что подход «наименьшего общего знаменателя» может быть единственным способом. Например:
<SomeFieldName>
<Code></Code> <!-- would store a FK ref value if instance used lookup, otherwise would be empty or nonexistent-->
<Text></Text> <!-- would store the text from the lookup if instance used lookup, would store user supplied text if not-->
</SomeFieldName>
Другие мысли / идеи по этому поводу?
ТИА!