Relacionar contenidos

Buenas,

estoy empezando con Drupal y tengo las siguientes tablas

A (id_A,...)

B (id_B,id_A,...)

C (id_C,id_B,id_A,...)

el caso es que B es una entidad débil, necesita de la existencia de A. El primer problema surge aquí:

Empleando CCK nodereference en B y A, al crear un contenido de tipo B y relacionarlo con uno de tipo A, esta relación no es bilateral, es decir, no se manifiesta también en el contenido de tipo A.

Otro problema entre A y B es que la relación entre A y B es 1 a N. ¿Cómo represento en Drupal que un elemento de B sólo puede estar relacionado con uno de A?

Otro problema surge con C:

C puede tener relación con un elemento de tipo B --> tiene relación con A (relación entre B y C: 1 a N)
ó
C puede tener relación con un elemento de tipo A (relación entre A y C: 1 a N)
ó
C no tiene relación con nada

Si estoy creando un contenido de tipo C, al relacionarlo con B (mediante nodereference) no se asocia automáticamente con A.

Muchas gracias.

Saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Muchas gracias

Muchas gracias jonhattan.

Conseguí resolver los 2 primeros problemas empleando el módulo cnr. El módulo backreference no llegué a probarlo.

Para el tercer problema me imagino que tendré que programar una acción en AJAX para que al cambiar el contenido del field node reference de B se muestre en el field node reference de A el valor correspondiente

...¿por dónde empiezo?

Provisionalmente lo que hice

Provisionalmente lo que hice fue crear unos radiobuttons en donde el usuario escoge la vinculación de la entidad C

Con B
Con A
Ninguna de las anteriores

Así, empleando ConditionalFields muestro el campo correspondiente

Empleando CCK nodereference

Empleando CCK nodereference en B y A, al crear un contenido de tipo B y relacionarlo con uno de tipo A, esta relación no es bilateral, es decir, no se manifiesta también en el contenido de tipo A.

Para esto puedes usar el modulo backreference o cnr.

Otro problema entre A y B es que la relación entre A y B es 1 a N. ¿Cómo represento en Drupal que un elemento de B sólo puede estar relacionado con uno de A?

La cardinalidad se especifica en la configuración de cada uno de los campos si no me equivoco. Para respetar la cardinalidad quizas sea mejor el modulo cnr.

Si estoy creando un contenido de tipo C, al relacionarlo con B (mediante nodereference) no se asocia automáticamente con A.

No sé si algún módulo te hace crea directamente una referencia extra entre C y A al vincular C con B. Si no, se podrá resolver con un poco de código :)