POCO дизайн вопрос - PullRequest
       19

POCO дизайн вопрос

1 голос
/ 02 сентября 2010

Может / должен ли мой POCO охватывать несколько баз данных, если применимо?

Причина, по которой я спрашиваю, заключается в том, что я нахожусь в процессе рефакторинга устаревшего корпоративного приложения, которое было построено поэтапно.К сожалению, у каждого этапа была своя отдельная БД (по крайней мере, все они в одном экземпляре SQL).

Из-за этого я легко вижу, где типичный бизнес-объект может пересекаться между 2. Я знаю, что в DDD мой объект не должен знать, что яЯ просто подумал, существует ли какое-то неписанное правило, согласно которому несколько таблиц вполне подойдут, но не несколько БД.

Это вызовет у меня сильные головные боли, т. е. должен ли я вкладывать энергию в объединение 4 отдельных БДв 1, так как все они применимы к одному приложению, а не к решению « пластырь »?

Примите любые заявления, которые я сделал, с недоверием, как я учу себя Дизайн, управляемый доменом , когда я делаю это, и пытаюсь применить его на ходу.

Ответы [ 2 ]

2 голосов
/ 02 сентября 2010

Ваши POCO должны быть Постоянное невежество - им все равно, откуда они или куда они собираются.

Ваше внимание должно быть на Хранилища : они определяют, откуда поступают данные и как эти данные вводятся в ваши POCO.Когда вы решите объединить свои базы данных, вам нужно будет только обновить классы репозитория.

Надеюсь, это поможет.

1 голос
/ 09 сентября 2010

Наша текущая внутренняя система использует несколько баз данных. Данные наших клиентов поступают из готовой ERP. Наши данные "корзины покупок" взяты из нескольких пользовательских баз данных, которые разбиты на продукты и предложения. Как только мы будем взаимодействовать с бухгалтерией / доставкой, мы подключимся к еще одной базе данных для доступа к данным заказов. Иногда на нашем сайте есть представления, которые собирают информацию из всех этих систем, поэтому наши POCO заполнены всевозможными ганками, происходящими из далекых мест. Мы оставляем это на уровне нашего доменного сервиса для доступа к различным БД и заполнения наших POCO.

...