Является ли когда-нибудь хорошей идеей использовать NHibernate <join>из частичного класса «многие ко многим»? - PullRequest
0 голосов
/ 09 февраля 2012

У меня есть таблица Shop, таблица StaffRole и таблица ShopStaffRole, которая служит для многих ко многим, но с дополнительными полями, такими как IsRequired и т. Д.

Shop
  ShopId
  ShopName
  ShopAddress

StaffRole
  StaffRoleId
  StaffRoleName

ShopStaffRole
  ShopStaffRoleId
  ShopId
  StaffRoleId
  IsRequired

Таким образом, мой выбор, кажется, Shop класс и StaffRole класс с NHibernate many-to-many, отображающим между ними, но это не будет отображаться IsRequired хорошо в моей объектной модели, поэтому имеет смысл иметь класс ShopStaffRole и отображение one-to-many между ним и Shop и StaffRole.

Однако при ближайшем рассмотрении таблица StaffRole имеет только Id и Name. Имеет ли смысл просто использовать NHibernate join , чтобы поместить StaffRoleName непосредственно в класс ShopStaffRole в виде строки, и полностью отказаться от представления таблицы StaffRole как класса?

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

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

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

Пока избыточность не является вашей главной задачей, и вы не собираетесь добавлять какой-либо интерфейс для управления ролями позже, тогда вы можете использовать подход Join.

0 голосов
/ 13 февраля 2012

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

В моем случае, яЯ понял, что хотя этому приложению не нужно было бы беспокоиться об изменении StaffRole, была бы еще одна таблица, которая позже попала в область действия, также ссылающаяся на StaffRole, поэтому, если мы когда-нибудь захотим посмотреть на StaffRolea Магазин, затем найдите все учебные материалы, требуемые этой StaffRole, тогда было бы неплохо иметь двусторонние средства доступа между StaffRole-ShopStaffRole и StaffRole-TrainingStaffRole.

...