Каково наилучшее расположение кода для определения методов взаимосвязи таблиц с использованием моделей Zend Framework?
-
23-08-2019 - |
Вопрос
Я создаю простую систему тегов, которая позволяет мне привязывать тег практически ко всему в моем приложении.Чтобы облегчить это, я создал таблицу под названием "объекты", на которую ссылается моя модель "Object".
На данный момент у меня настроены три модели:
- Тег (с TagObject, определенным как Зависимая таблица)
- Объект (с тегом object, определенным как dependedTable)
- TagObject (как с тегом, так и с объектом, определенными в ReferenceMap)
Я уже создал несколько простых методов, таких как fetchTagById()
и fetchTagByName()
в моей модели тегов, но теперь я хочу создать метод, который получает мои теги и их соответствующие вхождения в таблице объектов, чтобы создать простое облако тегов.
С точки зрения структуры, каково наилучшее местоположение для создания этого метода (с использованием findDependentRowset() Найти зависимый набор())?
Я почему-то чувствую, что хранить это в моей модели тегов не очень хорошая практика, но хранение этого в моей модели TagObject тоже кажется неудобным и может все усложнить.
Мы были бы очень признательны за любой совет.
Заранее благодарю.
Решение
Если метод извлекает теги, то он должен быть в модели тегов.Если он извлекает объекты, это должно быть в объектной модели.Поскольку вы извлекаете теги и их вхождения, это должно быть в модели тегов.
Я бы назвал теги модели не тегом, поскольку тег - это строка в тегах, а в ZF модель обычно является каналом передачи данных в таблицу.То же самое и с объектами.
$tags = new Tags();
$cloud = $tags -> getWithObjectOccurrences();
С другой стороны, я бы никогда не назвал класс "object" или "объекты", поскольку он слишком общий (объекты - это базовая языковая конструкция).Подумайте о том, чтобы найти для него более описательное название.