Хранение таксономии
Хранение таксономии
Если вам нужно больше возможностей, чем те. которые предоставляют встроенные таксономии, вам придется разобраться в том. как таксономии хранятся в базе данных. В типичной базе данных (не формата Drupal) вы могли бы создать одноуровневую таксономию, просто добавив столбец к таблице базы данных. Как вы уже видели, Drupal добавляет таксономию через нормализованные таблицы базы данных.
Словари на основе модуля
В дополнение к словарям, которые могут создаваться после перехода Administer=>Content=>Categories.
модули используют таблицы таксономии для хранения своих собственных словарей. Например, модуль форума использует таблицы таксономии для хранения словаря контейнеров и форумов. Модуль изображения использует их при организации галереи изображении. Каждый раз при реализации иерархических терминов спрашивайте себя, не лучше ли использовать модуль таксономии и словарь на основе модуля.
Модуль, который имеет словарь, идентифицируется в столбце module таблицы vocabulary. Обычно этот столбец содержит taxonomy, потому что именно модуль таксономии управляет большинством словарей.
Получение терминов для идентификатора узла
Если вы знаете идентификатор узла, но не располагаете полностью загруженным объектом узла, этот ресурс хорош для загрузки всего узла, но не нужен, когда вы можете просто получить термины, как представлено ниже:
$nid =3;
$terme =taxonomy_node_get_terms($nid);
Использование taxonomy_seiect_nodes () приводит к выполнению множества запросов к базе данных. Если у вас объемный словарь, намного более эффективно получать результаты с помощью одного запроса, но осуществить это не так просто.
Когда будете заканчивать писать запросы к таблицам таксономии с перечисле-ниемуалов. не забудьте заключить запрос в оболочку db_rewrite_sql () так, чтобы любые модули, которые осуществляют управление доступом, могли соответственно ограничить этот запрос.