Relación entre varios bloques semánticos mediante el uso de un mismo atributo semántico.
En los diagramas, la relación "ligera" la demarco con una línea discontínua y es bidireccional.
[[TodoList::
[[IdTodoList::XXXX]]
]]
[[Tarea::
[[Tarea::
[[IdTodoList::XXXX]]
[[Título::Una tarea]]
[[Descripción::Tarea que se llama igual que la primera]]
]]
[[Tarea::
[[Tarea::
[[IdTodoList::XXXX]]
[[Título::Otra tarea]]
[[Descripción::Esta es otra posible tarea]]
]]
La relación entre los bloques semánticos es bidireccional. En el ejemplo no existe una diferencia clara acerca de a qué elemento semántico pertenece relamente el atributo "IdTodoList" como clave primaria.
La relación entre los bloques semánticos es bidireccional. En el ejemplo no existe una diferencia clara acerca de a qué elemento semántico pertenece relamente el atributo "IdTodoList" como clave primaria.
Para evitar que la relación sea bidireccional, podríamos definir la tarea de la siguiente forma:
[[Tarea::
[[TodoList.IdTodoList::XXXX]]
[[Título::Otra tarea]]
[[Descripción::Esta es otra posible tarea]]
]]
De esta forma quedaría claro que la tarea está relacionada con la una "TodoList" cuyo "id" es XXXX.
Otra alternativa sería utilizar un atributo semántico totalmente diferente. Por ejemplo:
[[Tarea::
Otra alternativa sería utilizar un atributo semántico totalmente diferente. Por ejemplo:
[[Tarea::
[[LinkIdTodoList::XXXX]]
[[Título::Otra tarea]]
[[Descripción::Esta es otra posible tarea]]
]]
Con esta alternativa sería necesario definir que el atributo "LinkIdTodoList" sólo puede tomar los valores existentes para "IdTodoList".
Con esta alternativa sería necesario definir que el atributo "LinkIdTodoList" sólo puede tomar los valores existentes para "IdTodoList".

No hay comentarios:
Publicar un comentario