lunes, 15 de febrero de 2010

Tipos de enlace - Enlaces dinámicos

Relación entre dos o varios bloques semánticos mediante una referencia explícita a atributos semánticos. Aquí es donde empieza lo "complejo". A base de reglas básicas y simples, podremos crear estructuras semánticas diferentes pero funcionalmente similares.
En los diagramas, la relación dinámica la demarco con una línea discontínua.

Un enlace dinámico "simplón":
La tarea se relaciona con la TodoList mediante la clave de la TodoList.

Un ejemplo:

[[TodoList::
  [[IdTodoList::XXXX]]
]]

[[Tarea::
  [[Ref::
    [[Type::TodoList]]
    [[Property::
      [[Type::IdTodoList]][[Value::XXXX]]
    ]]
  ]]
  [[Título::Una tarea]]
  [[Descripción::Tarea que se llama igual que la primera]]
]]

[[Tarea::
  [[Ref::
    [[Type::TodoList]]
    [[Property::
      [[Type::IdTodoList]][[Value::XXXX]]
    ]]
  ]]
  [[Título::Otra tarea]]
  [[Descripción::Esta es otra posible tarea]]
]]

La relación es unidireccional. En el ejemplo se entiende que "IdTodoList" es la clave primaria del bloque semántico "TodoList". Se pueden añadir tareas y modificarlas sin impactar directamente en la definición de la TodoList. Las relaciones podrían llegar a ser todo lo complejas que queramos; no necesariamente serán de a través de un atributo semántico simple.

El mismo ejemplo pero con el enlace en el otro sentido:



 Y el ejemplillo se queda en:

[[TodoList::
  [[Ref::
    [[Type::Tarea]]
    [[Property::
      [[Type::IdTarea]][[Value::XXXX]]
    ]]
  ]]
  [[Ref::
    [[Type::Tarea]]
    [[Property::
      [[Type::IdTarea]][[Value::YYYY]]
    ]]
  ]]
]]

[[Tarea::
  [[IdTarea::XXXX]]
  [[Título::Una tarea]]
  [[Descripción::Tarea que se llama igual que la primera]]
]]

[[Tarea::
  [[IdTarea::YYYY]]
  [[Título::Otra tarea]]
  [[Descripción::Esta es otra posible tarea]]
]]

Se pueden modificar tareas, pero añadir una nueva tarea implica modificar el valor del atributo semántico TodoList.

No hay comentarios:

Publicar un comentario