Как вы справляетесь с отношениями внешних ключей в модельных классах - PullRequest
1 голос
/ 21 марта 2009

Допустим, у меня есть таблица Project с идентификатором FK CompanyId, который связывает проект с таблицей компании.

В своей модели проекта вы добавляете объект Company или просто свойство CompanyId и извлекаете компанию при необходимости в коде?

Ответы [ 2 ]

2 голосов
/ 21 марта 2009

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

Я бы предпочел прикрепить объект компании с точки зрения «чистоты», но если бы у меня никогда не было случая, когда я действительно что-то делал бы с этим клиентом, я бы просто использовал ключ. Я не знаю, какой язык / платформу вы используете, но вы могли бы рассмотреть какую-то ленивую схему загрузки, когда объект компании заполняется данными на основе JIT.

0 голосов
/ 21 марта 2009

При использовании LinqToSQL отношения внешнего ключа автоматически моделируются в бизнес-объектах, генерируемых SQLMetal. Типы сущностей имеют дочерний или родительский атрибут, названный в честь дочернего или родительского типа. Вы можете использовать их для извлечения связанных бизнес-объектов.

Эти атрибуты поддерживают отложенную загрузку, поэтому соответствующие дочерние или родительские объекты загружаются из базы данных только при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...