Referencia de entidad vs. taxonomía

10

Digamos que tengo un equipo, que tiene miembros. Tengo un tipo de contenido para equipo y un tipo de contenido para miembros individuales del equipo. Digamos que también hay otras relaciones, por ejemplo, los equipos pueden pertenecer a los departamentos, y hay proyectos que pueden asignarse a individuos o equipos.

Según tengo entendido, hay dos formas en que puedo definir las relaciones entre estas entidades: referencias de entidad o términos de taxonomía. ¿Cuándo debo usar un tipo sobre el otro? ¿Es mejor elegir solo un método o mezclarlos?

Me parece que la taxonomía es la más flexible, porque es fácil construir árboles usando tipos de taxonomía, o por ejemplo si dentro de un equipo decidí que quería construir una jerarquía en el equipo, la funcionalidad ya está allí (simplemente arrastre el términos de taxonomía en la jerarquía), mientras que si he usado la referencia de entidad no puedo pensar en una forma simple de hacer eso (aparte de agregar taxonomía, que luego resulta en redundancia).

Parece que hay algo que no entiendo aquí, ¡pero no estoy seguro de qué es!

Cualquier ayuda sería apreciada.

James
fuente
Bien, he progresado en la comprensión: ¡una referencia de entidad puede ser en realidad un término de taxonomía! por lo tanto, "Equipo B" podría ser tanto un Tipo de contenido (que contiene la descripción) como un enlace de referencia de la Entidad a un término de Taxonomía (del mismo nombre). Entonces, un usuario podría estar vinculado al término Taxonomía, en lugar del tipo de contenido ...
James
Supongo que una cosa que aún no he resuelto es: ¿cuál es la diferencia entre tener un campo en un tipo de contenido que es un término de taxonomía y una referencia de entidad que se vincula a un término de taxonomía? Esto último parece un nivel adicional de complicación
James
Son bastante comparables. Por falta de coherencia, me gusta usar la referencia de entidad.
alex laughhnan
Pero si usa la referencia de entidad, todavía hay instancias en las que es mejor usar la taxonomía, ¿no es así? Entonces, por ejemplo, si tenemos una jerarquía de organización, me parecería que la taxonomía es una mejor manera de hacerlo.
James

Respuestas:

21

Estás hablando de dos conceptos diferentes aquí. La primera pregunta se relaciona con cada vez que se quiere organizar el contenido en diferentes categorías o si se quiere construir una relación entre los tipos de contenido existentes. La otra pregunta es, si, al usar una taxonomía, ¿será mejor usar un campo de referencia de taxonomía o un campo de referencia de entidad?


Sobre el primer concepto

Depende de su caso de uso. Las taxonomías son excelentes para construir jerarquías, como mencionaste, pero idealmente, no deberías usar taxonomías para contener contenido real. La razón de esto es fácil: si bien puede agregar campos a términos de taxonomía, todos los niveles jerárquicos de una taxonomía usan los mismos campos. Tomando su ejemplo con miembros que pertenecen a diferentes equipos, esto podría generar problemas. Si desea almacenar más información sobre un equipo o miembro que solo el nombre, si, por ejemplo, desea almacenar información sobre el nombre, apellido y biografía de un miembro y agregar estos campos a la taxonomía, serían disponible en términos de equipo también. Y si agrega un campo de descripción de equipo para los equipos, estos aparecerán para los miembros del equipo.

Las taxonomías se utilizan mejor cuando se organizan elementos similares jerárquicamente. Etiquetas similares, por ejemplo:

  • vegetal
    • Zanahoria
    • patata
  • Fruta
    • manzana
    • plátano

Las referencias de entidad son excelentes para establecer relaciones entre tipos de contenido. Los ejemplos incluyen cuando tiene un tipo de nodo 'equipo' y un tipo de nodo 'miembro del equipo', cada uno con sus propios campos. O un tipo de nodo 'canción' que hace referencia a un 'álbum' que hace referencia a un 'músico'. En este sentido, las referencias de entidad son más flexibles que las taxonomías, ya que permiten relaciones más complejas. Cuando usa vistas, también puede utilizar estas relaciones. Tomando su ejemplo, podría crear una vista de todos los miembros del equipo, y utilizando la referencia de entidad para una relación, y uno podría mostrar cualquier campo en el tipo de contenido del equipo junto con los campos del nodo miembro.

Los campos de mezcla de nodo referenciado y taxonomía también son legítimos. En su ejemplo con los equipos, tanto el equipo como el miembro podrían ser un nodo, haciendo referencia entre sí con una referencia de entidad. Al mismo tiempo, el departamento podría ser una taxonomía con todos los departamentos disponibles.


Sobre el segundo concepto

Cuando DO lanzó D7, se envió con un campo de referencia de taxonomía para usar cuando se hace referencia a taxonomías. Desde entonces, hemos visto el lanzamiento del módulo Entity API y, en consecuencia, el módulo de referencia de la entidad, y dado que los términos y las taxonomías son entidades, uno puede hacer referencia a ellos como cualquier otra entidad. En este punto, los dos funcionan de manera muy similar y, en muchos casos, no importa cuál use. Sin embargo, todavía hay algunos módulos contribuidos que proporcionan formateadores de campo y widgets, que solo funcionan para uno u otro. Por lo tanto, depende principalmente si necesita un formateador de este tipo si debe usar la referencia de taxonomía o la referencia de entidad.

Como DO está reemplazando el campo de referencia de taxonomía con el campo de referencia de entidad en D8, prefiero ir con el campo de referencia de entidad para vincular a taxonomías en lugar del campo proporcionado por el módulo de taxonomía.

Zuzuesque
fuente
2
¡Qué maravillosa explicación! ¡Muchas gracias! ¡Ahora entiendo!
James