Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Este bien este diagrama?

Estas en el tema de Este bien este diagrama? en el foro de Mysql en Foros del Web. Hola compañeros. Aunque llevo mucho tiempo en el desarrollo web, soy bastante novato en base de datos. Sobre todo a diagramas y foreign keys.... Me ...
  #1 (permalink)  
Antiguo 21/04/2013, 05:09
 
Fecha de Ingreso: junio-2008
Mensajes: 165
Antigüedad: 15 años, 11 meses
Puntos: 6
Este bien este diagrama?

Hola compañeros. Aunque llevo mucho tiempo en el desarrollo web, soy bastante novato en base de datos. Sobre todo a diagramas y foreign keys.... Me gustaría pediros vuestro consejo acerca del siguiente diagrama.



La base de datos consta de 5 tablas:

User
Post
Comentario
Voto
Articulo

Y me estoy haciendo un pekeño lio al hacer las relaciones 1:n 1:1 etc...

Un usuario puede hacer post, comentario, voto,articulo.... Y un articulo puede tener muchos comentarios a su vez... y es aquí dónde me lio. Os adjunto una captura para detallar mas, perdonar por vuestro tiempo y espero que podais dadme algún consejo. Mil gracias!
  #2 (permalink)  
Antiguo 21/04/2013, 13:00
 
Fecha de Ingreso: febrero-2012
Mensajes: 136
Antigüedad: 12 años, 2 meses
Puntos: 8
Respuesta: Este bien este diagrama?

Bueno lo que colgaste esta mal ...

Yo te aconsejo que primero leas un libro de base datos ya que hay varios ejemplos de como normalizar y obtener una base datos correcta

Saludos

Última edición por AdvKael; 21/04/2013 a las 13:11
  #3 (permalink)  
Antiguo 21/04/2013, 13:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Este bien este diagrama?

Dicho con otras palabras, si, te están fallando conceptos básicos que tienen que ver con la definición de entidad-relación, dependencias y normalización.

Errores:
- Estás creando una entidad Usuario que tiene una PK multicampo, lo que es un error desde el momento en que un Usuario es una tabla base que materializa una entidad fuerte.
- Las entidades Post, Articulo, Comentario y Voto, dependen de Usuario, no al revés.
- Un Usuario puede tener N Posts, pero cada post sólo puede ser de un usuario.
- Un Usuario puede hacer diferentes comentarios sobre un mismo posts o diferentes posts, pero cada uno de los comentarios sólo puede relacionarse con el mismo post. Exactamente como funciona FDW...
- Un Usuario puede votar un Post, pero sólo una vez cada post. En ese contexto la cardinalidad es N:N, por tanto la PK de Voto es (idPost, idUsuario), y no requiere otro valor. Tampoco necesita dos campos para definir el voto como positivo y negativo, porque si sólo puede tomar dos estados, se puede hacer con un sólo campo BOOL, considerando 0 (FALSE) como negativo y 1 (TRUE) como positivo.
- Comentarios no puede tener una relación opcional con dos tablas, porque el comentario depende del Post o del Articulo, y por tanto o lleva el ID de uno, o lleva el ID del otro.
Este caso tiene dos soluciones: 1) Crear dos tablas de comentarios, una para artículos y otra para Posts. 2) Crear una estructura de metaentidades al estilo Wordpress, pero requerirá más tablas y una programación más elaborada.
Es un tema para analizar con cuidado, yo te sugiero que si estás comenzando, vayas a lo ortodoxo.
- Este último problema también afecta a Voto, porque si votas por entidades distintas (Articulos y Posts), necesitarás una tabla de votos separada para cada uno, o bien una estructura dinámica que soporte el conjunto (otra vez metaentidades).
- Todas las tablas tienen mal definidas las PK. Completamente...

En esencia: Tienes que volver a los manuales y apuntes, y empezar de cero de nuevo. El modelo no sirve como está planteado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 22/04/2013, 02:04
 
Fecha de Ingreso: junio-2008
Mensajes: 165
Antigüedad: 15 años, 11 meses
Puntos: 6
Respuesta: Este bien este diagrama?

Muchas gracias por las respuestas!

Me han servido de mucha ayuda. Ayer hice otro modelo más o menos corrigiendo lo que dijiste.... Voy a ver si alguien puede ayudarme un poco más en persona pero daros las gracias a los dos. Sobre todo a ti por esos consejos y pautas me ha quedado mucho mas claro!!

Etiquetas: diagrama, foreignkey
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:13.