Как грамотнее организовать каталог компаний на Drupal - связать филиалы через field_collections или reference?

Главные вкладки

Аватар пользователя slavik.kz slavik.kz 14 ноября 2012 в 12:50

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

Делаю двумя способами:

1. нода-компания, field_collection - контактная информация (регион, адрес + несколько телефонов (если бы по одному значению, можно было бы извратиться с группой полей, 1 адрес, 1 телефон), даже вид деятельности)

Плюсы: добавил компанию, потом быстренько добавляешь новый филиал (контакты), редактору понятно "добавить группу контактов"

Минусы: в представлениях, да и просто по сайту приходится учитывать связи (например, ноды не отображаются на страницах терминов, которые в field_collection). В том числе - не сразу сделаешь отдельную страницу под филиал (но зато легко все адреса вывести на одной странице-ноде), не изменить описание (вдруг у филиала нужно будет указать другой вид деятельности)

2. нода-компания с одним блоком контактов, и каждый филиал - отдельная нода (например, через node clone), с изменением нужных полей. Связь - через entity reference или, например, таксономией: словарь "компании", в случае таксономии, можно сделать небольшое описание всей группы компаний, используя поля термина.

Плюсы
: достаточно гибко, все филиалы компании работают по дефолту как простые ноды, связь с другими филиалами или родительской компанией отображается в блоке, все данные являются редактируемыми

Минусы: связь филиалов только через поле, не очень явное, разростание кол-ва сущностей (связи и вьюсы, дублирование описаний - если общее везде)

Оба способа позволяют добавить иерархию, например, добавив поле тип: "главный филиал", "представительство" и т.п.
Еще нюанс, бывают компании, где связь не явна, но есть, например "Заводостроительный завод", может иметь турбазу "База отдыха завода", являющуюся другим юр. лицом, и, вроде, тут нужна связь, но уж больно не явная, и она отличается от простых филиалов или офисов того же завода.

Хотел бы выслушать предложения, может есть еще какие-то варианты, или один из этих является лучшим возможным решением?