La sencillez en el modelado de datos IV

Concretemos entonces la descripción del problema a resolver, resumiendo:

Queremos realizar una aplicación para catalogar películas:

  • Las películas pueden pertenecer a varios catálogos
  • Los usuarios comentarán las películas
  • Los usuarios calificarán las películas
  • Los actores que intervienen en las películas
  • Las imágenes (carátulas, libretos, posters) de las películas
  • Los directores dirigen las películas
  • Los productores producen de las películas
  • Los idiomas en los que están disponibles las películas
  • Los subtítulos disponibles de las películas
  • Las temáticas de que engloban las películas
  • Las películas pueden estar almacenadas en múltiples soportes físicos
  • Las películas puede estar en distintas ubicaciones
  • De la misma definición extraemos las entidades y sus relaciones (entidades maestras e históricas)

    image

    Y ahora pasamos de lo concreto a lo abstracto, resumiendo:

    Queremos realizar una aplicación para catalogar películas:

  • Las películas pueden pertenecer a varios catálogos
  • Las personas comentarán las películas
  • Las personas calificarán las películas
  • Las personas que intervienen en las películas
  • Las imágenes (carátulas, libretos, posters) de las películas
  • Las personas dirigen las películas
  • Las personas/empresas producen las películas
  • Los idiomas en los que están disponibles las películas
  • Los subtítulos disponibles de las películas
  • Las temáticas de que engloban las películas
  • Las películas pueden estar almacenadas en múltiples soportes físicos
  • Las películas puede estar en distintas ubicaciones
  • ¿Cuanto de distinta es nuestra definición? Pues no demasiado (solo lo marcado en verde). Aglutinamos actores/directores/guionistas/productores en una única tabla, Entidades

    image

    Una de las cuestiones más complejas en el diseño de modelos de datos es decidir cual de las dos definiciones del problema a resolver es la más correcta para nuestro ejemplo. Normalmente la solución suele ser mixta…Veamos la solución que José Luis implementó como posible solución para este mismo ejemplo.

    image http://ascsl.wordpress.com/2010/01/08/se-me-esta-ocurriendo-algo/

    Como podéis apreciar las tablas actores, directores, guionistas las juntó en una algo más abstracto llamado Personas. Curiosamente dejó a los usuarios fuera (alguno se preguntará el motivo). Es lógico, los usuarios no tendrán un peso especifico en el casting de la película pero si lo tendrán para valorar y comentar la película. Este montaje es mixto, y puede ser un buen punto de partida.

    Como os podéis imaginar el modelo abstracto es más sencillo de mantener por implementar menos código y por tener menos tablas. Pero también es más complejo de entender y suele llevar asociado una mayor implementación en reglas de negocio.

    Con esta breve explicación doy por concluido la serie de artículos. Si deseáis que nos extendamos en alguna parte del análisis comentarlo…

    Descargar en formato PDFDescargar en PDF
    1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votes, average: 4,00 out of 5)
    Cargando…

    Seguir Jorge Hontoria Jimenez:

    Gerente de TipeSoft

    Dirección de proyectos de integración de software y aplicaciones orientadas a servicios. Implantación de soluciones de integración basadas en SharePoint Portal.

    Últimas publicaciones de

    2 Respuestas

    1. […] Las diferencias principales en estos esquemas son (ver art. de Jorge): […]

    2. Aqui te dejo mi esquema

    Dejar una opinión