Доступ к классу, связанному с двумя другими классами - PullRequest
1 голос
/ 04 июня 2009

С учетом следующих таблиц: User, Trial, UserTrial. Если у пользователя есть несколько пробных версий, пробная версия внутренне не сопоставляется с какими-либо пользователями и содержит сведения о пробной версии (имя, описание, настройки), а UserTrial содержит информацию, относящуюся к экземпляру Пробная версия пользователя (срок годности, например). Каков был бы правильный способ для контроллера приложения MVC получить доступ к данным о UserTrial?

Дополнительные детали

  • ОРМ нет
  • Каждый класс имеет двойное назначение и может использоваться для создания новых или загрузки существующих пользователей, пробных версий или пользовательских тестов. Конструктор загружает данные при передаче идентификатора и сохраняет его методом -> save ()

Казалось бы, есть 2 варианта:

1

User.SetTrial () User.GetUserTrial ()

2

UserTrial.SetUser () UserTrial.SetTrial () UserTrial.GetSomeData ()

Какое наиболее подходящее использование?

1 Ответ

0 голосов
/ 04 июня 2009

Я не думаю, что ваш вариант 1 сработает, потому что если у каждого пользователя может быть несколько испытаний, вам потребуется что-то вроде User.AddTrial (Trial), User.RemoveTrial (Trial), User.getUserTrails ().

Какой вариант дизайна вы выберете, зависит от того, хотите ли вы сделать объекты UserTrial «первым классом» или нет. Хотите ли вы, чтобы пользователи и пробные версии были первичными объектами, а объекты UserTrial просто склеивали для хранения отношений, или вы хотите, чтобы объекты UserTrial также были первичными? Если первое, вы захотите что-то вроде вашего варианта 1; если последнее, вам нужно что-то вроде вашего варианта 2.

...