2010-06-02 3 views
0

В приложении есть несколько простых объектов (например, содержащие только идентификатор и заголовок), которые редко меняются и на которые ссылаются более сложные объекты приложения. Обычно это такие организации, как Country, City, Language и т. Д.проблема именования моделирования домена

Как они называются? Я использовал следующие названия для тех, кто в прошлом, но я не уверен, что лучший способ назвать их:

  • справочные данные
  • поиска значений
  • словарей

благодаря

ответ

2

Я бы сказал, справочные данные

См link text

+0

Спасибо. Любая ссылка/документация по этому поводу? – cherouvim

+0

Справочные данные. Спасибо – cherouvim

3

Вы отметили «ddd», поэтому, если вы ищете более подход, основанный на домене, отбросьте идентификатор на этих объектах и ​​обработайте их как Value Objects.

Причина, по которой вы можете отбросить идентификатор, заключается в том, что она добавляет ненужную сложность проблемному домену. Например, у вас есть таблица «Страна» в вашей реализации, я предполагаю? У вас все равно будет это, но это не будет ссылочный поиск. Вы использовали бы его как «справочные данные». Загрузите его заранее для сценариев, на которых нужно ссылаться - возможно, ваш пользовательский интерфейс привязывает его к выпадающему списку, например ...

Когда объект сохранен или обновлен, вы сохраняете значение объекта, следовательно, "value" "object". Если пользователь меняет объект на другое значение, не проблема, просто обновите значение. Это один менее ассоциативный поиск, который нужно делать при выполнении операций CRUD, что делает общую модель менее.

+0

Спасибо. Да, я читал об объектах Value в http://amzn.com/0321125215. Это интересная концепция, но на уровне db это не похоже на денормализацию? Страновые литералы будут разбросаны повсюду. Что еще более важно, когда мне нужно изменить текст страны (например, опечатку), мне пришлось бы сканировать многие таблицы, чтобы применить исправление. – cherouvim

+0

@cherouvim - Один из ключей к DDD заключается в том, что не имеет значения, как выглядит база данных, если у вас есть надежный слой сопоставления между вашими сущностями и вашими данными. Что касается опечаток, вы правы. Вам нужно будет найти несколько мест, чтобы исправить ситуацию. Однако с точки зрения управления вы всегда можете сохранить хранимую процедуру для обновления каждого экземпляра. Например, у вас может быть сохраненный proc для обновления всех ссылок на вашу страну, которые берут старое и новое значение в качестве параметров и выполняют инструкции по обновлению для вас, поэтому вам нужно только вызвать один proc для его исправления. –

+0

(продолжение) Возможно, однако, что изменение существующих значений действительно является краевым случаем. Частота, которую вам нужно будет делать, будет очень низкой, и поскольку эти данные довольно статичны, вы должны решить эти проблемы до того, как ваш код станет «качеством продукции». Книга, на которую вы ссылаетесь, - это «Синяя Библия» - то же самое место, на котором было указано определение по ссылке, которую я предоставил. :-) –

Смежные вопросы