Допустим, у меня есть команда, в которой есть участники. У меня есть тип контента для команды и тип контента для отдельных членов команды. Допустим, есть и другие отношения, например, команды могут принадлежать отделам, и есть проекты, которые могут быть назначены отдельным лицам или командам.
Насколько я понимаю, есть два способа определить отношения между этими сущностями - либо ссылки на сущности, либо используя термины таксономии. Когда я должен использовать один тип над другим? Лучше всего выбрать только один метод или смешать их?
Мне кажется, что Таксономия является наиболее гибкой, потому что легко создавать деревья с использованием типов таксономии, или, например, если внутри команды я тогда решил, что хочу построить иерархию в команде, функциональность уже есть (просто перетащите термины таксономии в иерархию), тогда как, если я использовал ссылку на сущность, я не могу придумать простой способ сделать это (кроме добавления таксономии, которая затем приводит к избыточности).
Такое ощущение, что здесь есть что-то, чего я не понимаю, но я не уверен, что это такое!
Любая помощь будет оценена.
источник
Ответы:
Вы говорите о двух разных концепциях здесь. Первый вопрос связан с тем, когда каждый хочет организовать контент по разным категориям или если он хочет построить отношения между существующими типами контента. Другой вопрос, если при использовании таксономии будет лучше использовать поле ссылки таксономии или поле ссылки на сущность.
Относительно первой концепции
Это зависит от вашего варианта использования. Как вы упомянули, таксономии отлично подходят для построения иерархий, но в идеале не следует использовать таксономии для содержания реального контента. Причина этого проста - хотя вы можете добавлять поля в термины таксономии, все иерархические уровни в таксономии используют одни и те же поля. Если взять ваш пример с членами разных команд, это может привести к проблемам. Если вы хотите хранить больше информации о команде или участнике, чем просто имя, если, например, вы хотите сохранить информацию об имени, фамилии и биографии участника и добавить эти поля в таксономию, они будут доступно и на условиях команды. И если вы добавите поле описания команды для команд, они появятся для членов команды.
Таксономии лучше всего использовать при иерархической организации подобных элементов . Как теги, например:
Ссылки на сущности отлично подходят для установления связей между типами контента. Примеры включают в себя, когда у вас есть тип узла «команда» и тип узла «член команды», каждый из которых имеет свои собственные поля. Или тип узла «песня», который ссылается на «альбом», который сам ссылается на «музыканта». В этом отношении ссылки на сущности являются более гибкими, чем таксономии, поскольку это допускает более сложные отношения. Когда вы используете представления, вы также можете использовать эти отношения. Используя ваш пример, вы можете создать представление всех членов команды и использовать ссылку на сущность для отношения, и можно отобразить любое поле в типе содержимого команды вместе с полями из узла-участника.
Поля смешанных узлов и поля таксономии также допустимы. В вашем примере с командами и команда, и участник могут быть узлом, ссылающимся друг на друга с помощью ссылки на сущность. В то же время, отдел может быть таксономии со всеми доступными отделами.
Что касается второй концепции
Когда DO выпустил D7, он поставлялся со справочным полем таксономии для использования при ссылках на таксономии. С тех пор мы видели выпуск модуля Entity API и, следовательно, модуля ссылок на сущности, и поскольку термины и таксономии являются сущностями, можно ссылаться на них, как на любую другую сущность. На данный момент они работают очень схоже, и во многих случаях не имеет значения, какой из них вы используете. Тем не менее, есть еще несколько дополнительных модулей, предоставляющих средства форматирования полей и виджеты, которые работают только для одного или другого. Таким образом, это в основном зависит от того, нужен ли вам такой форматер, следует ли использовать ссылку на таксономию или ссылку на сущность.
Поскольку DO заменяет ссылочное поле таксономии ссылочным полем сущности в D8, я предпочитаю использовать ссылочное поле сущности для связи с таксономиями, а не с полем, предоставленным модулем таксономии.
источник