Каково наилучшее расположение кода для определения методов взаимосвязи таблиц с использованием моделей Zend Framework?

StackOverflow https://stackoverflow.com/questions/391111

Вопрос

Я создаю простую систему тегов, которая позволяет мне привязывать тег практически ко всему в моем приложении.Чтобы облегчить это, я создал таблицу под названием "объекты", на которую ссылается моя модель "Object".

На данный момент у меня настроены три модели:

  • Тег (с TagObject, определенным как Зависимая таблица)
  • Объект (с тегом object, определенным как dependedTable)
  • TagObject (как с тегом, так и с объектом, определенными в ReferenceMap)

Я уже создал несколько простых методов, таких как fetchTagById() и fetchTagByName() в моей модели тегов, но теперь я хочу создать метод, который получает мои теги и их соответствующие вхождения в таблице объектов, чтобы создать простое облако тегов.

С точки зрения структуры, каково наилучшее местоположение для создания этого метода (с использованием findDependentRowset() Найти зависимый набор())?

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

Мы были бы очень признательны за любой совет.

Заранее благодарю.

Это было полезно?

Решение

Если метод извлекает теги, то он должен быть в модели тегов.Если он извлекает объекты, это должно быть в объектной модели.Поскольку вы извлекаете теги и их вхождения, это должно быть в модели тегов.

Я бы назвал теги модели не тегом, поскольку тег - это строка в тегах, а в ZF модель обычно является каналом передачи данных в таблицу.То же самое и с объектами.

$tags = new Tags();
$cloud = $tags -> getWithObjectOccurrences();

С другой стороны, я бы никогда не назвал класс "object" или "объекты", поскольку он слишком общий (объекты - это базовая языковая конструкция).Подумайте о том, чтобы найти для него более описательное название.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top