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.
fuente
Respuestas:
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:
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.
fuente