Diseño grafico de BD

s-charli

Sabeis de algun programa para poder dibujar el diagrama para el diseño de una base de datos rollo este

http://www.mysql-hispano.org/page.php?id=27&pag=9

Un Saludo :)

guiye

http://smartdraw.softonic.com/ie/3228

http://winesquema.softonic.com/ie/27771

http://edge-diagrammer.softonic.com/ie/6480

thrazz

SmartDraw se lleva la palma: www.smartdraw.com

Kansei

prieba con este:

http://www.casestudio.com/enu/default.aspx

s-charli

Antes de poner el post me instale todos los q habeis puesto :S No se me pondre con el case o el smartdraw que parecen bastante potentes

Muchas Gracias

s-charli

He creado este diagrama de Base de datos a ver si veis algun fallito

http://img234.echo.cx/my.php?image=1238sf.jpg

os cuento kiero q la web tengo usuarios, noticias y comentarios, ademas tmb kiero que se puedan crear grupos que puedan crear diferentes carpetas con albumes de imagenes

Creeis q sobra algun campo o falta alguno??

Un Saludo :)

s-charli

En Mv cuando posteas... si vuelve a postear la misma persona la BD no se actualiza :S

Nu se a ver si alguien consigue leer el post anterior

Un Saludo :)

B

Bueno, me puedo cebar verdad? xDDD

asi a vote pronto que hacen los nombres de tablas en plural?? los nombres de las tablas van en singular.

Porque tener 3 tablas y otras 3??
no seria mejor una BD con 3 tablas relacionadas y otra con otras 3??

a ver... la relación entre Usuarios, noticias y comentario deberia ser:

En que se diferencian exactamente las noticias y los comentarios? (preguntatelo y piensa la respuesta)

Para mi, lo único que diferencia Noticia y comentario es el titulo.

Aqui va de coña una REGLA DE NEGOCIO, si lo que quiero PUBLICAR es una noticia, escribir un titulo es obligatorio. Pon el atributo titulo como no MANDATORIO en COMENTARIO.

Otra sugerencia, Relaja las relaciones 1 a muchos por el lado del muchos, no vaya a ser que no puedas crear un USUARIO poque NO TIENE NADA PUBLICADO, y no PUEDAS PUBLICAR PORQUE NO TIENES USUARIO.

USUARIO ---> PLUBLICAR ---> COMENTARIO

Publicar es una TABLA DEBIL, que tiene como atributos:
fecha Date.

Bueno si me explicas el transfondo del problema, es decir Un texto explicativo, te propongo una solución y te la explico.

Saludos

s-charli

Weno a ver si de esta aprendo algo.

Yo kiero hacer una web q contenga albumes de fotos de mis amigos (rollo Grupos MSN), esos "grupos" a la vez podran tener varias carpetas internas, ademas tmb kiero meter algun manual, tmb kiero poder insertar noticias y enlaces, para todo eso necesito usuarios

No se que mas puedo explicar

He diseñado esto en 1 dia yo no se BD's :S Intento aprender y me he estado leyendo algunos manuales.

Se benevolo conmigo :(

Un Saludo :)

El tema del usuario iba a crear un Invitado para que tmb pueda publicar comentarios.
Lo de las BD no se como separarlas no se donde esta bien hecha una posible division

Kansei

1º- La tabla noticias y la tabla comentarios es la misma, salvo por el pequeño detalle de puedes incluir un campo que las distingas. Además supongo que a los comentarios también se les pueden poner títulos, (ejm. MV)

2º- En la tabla imágenes te sobra la FK id_grupo, puesto que esto es redundante. Puedes averiguar el grupo mediante la tabla Carpetas

3º- Me imagino que los grupos estarán formados por usuarios, a si que te falta una relación entre las dos tablas.

Suerte.

B

Mira he estado mirandolo un poco y me sale esto:

http://personales.ya.com/daniri7/bd.JPG

pero no esta completo, ya que, los COMENTARIOs se PUBLICAN por un USUARIO... (pero falta algo) DONDE??? en el Aire?? :S

xDD bueno ya me diras algo ;)

pd: Modelo Conceptual (NO FISICO)

s-charli

Que programita es ese ?? Parece mas facil q el Case 2 que tiene mucho rollo :S

Esta noche intentare aunar todos los conocimientos y poner un diseño final de la BD a ver que es lo que sale...

Un Saludo :)

Muchas Gracias por el esfuerzo :)

No entiedo el Publicar si es otra tabla y cual es la relacion con usuario y comentario....

Kansei

Atsumi, ¿por que pones la tabla publicar?, no lo pillo.
La hora pertenece el artículo/noticia salvo que tu le des un sentido diferente que se me escapa.

Otra cosa, yo colocaría la tabla intermedia usuario-grupo, hace que quede más claro el diagrama

s-charli

Weno aki esta el diseño que he hecho con esto :S

http://img251.imageshack.us/my.php?image=db1jl.jpg

A codigo es esto

Create table Usuario (
nick Char(20) NOT NULL,
password Char(20),
UNIQUE (nick),
Primary Key (nick)
) ENGINE = InnoDB;

Create table NoticiaComentario (
identificador Int NOT NULL AUTO_INCREMENT,
nick Char(20) NOT NULL,
titulo Char(100),
cuerpo Text NOT NULL,
fecha Date,
Primary Key (identificador,nick),
Index IX_publica (nick),
Foreign Key (nick) references Usuario (nick) on delete cascade on update cascade
) ENGINE = InnoDB;

Create table Grupo (
idGrupo Int NOT NULL AUTO_INCREMENT,
nombre Char(30) NOT NULL,
descripcion Char(100),
UNIQUE (idGrupo),
UNIQUE (nombre),
Primary Key (idGrupo)
) ENGINE = InnoDB;

Create table Carperta (
idCarpeta Int NOT NULL AUTO_INCREMENT,
idGrupo Int NOT NULL,
nombre Char(20),
descripcion Char(255),
UNIQUE (idCarpeta),
Primary Key (idCarpeta,idGrupo),
Foreign Key (idGrupo) references Grupo (idGrupo) on delete cascade on update cascade
) ENGINE = InnoDB;

Create table Imagen (
id_imagen Int UNSIGNED NOT NULL AUTO_INCREMENT,
idCarpeta Int NOT NULL,
descripcion Char(255),
Primary Key (id_imagen,idCarpeta),
Foreign Key (idCarpeta) references Carperta (idCarpeta) on delete cascade on update cascade
) ENGINE = InnoDB;

Create table UsuarioGrupo (
nick Char(20) NOT NULL,
idGrupo Int NOT NULL,
Primary Key (nick,idGrupo),
Foreign Key (nick) references Usuario (nick) on delete cascade on update cascade,
Foreign Key (idGrupo) references Grupo (idGrupo) on delete cascade on update cascade
) ENGINE = InnoDB;

No se yo exactamente xq se me definen tantas primary keys pero weno entiendo que se van heredando

Weno a ver que me comentais

Un Saludo :)

Que coño es el Index IX_publica (nick), ¿?¿?¿?¿?¿ En la tabala NoticiaComentario

Kansei

lo veo todo ok.

good job. :)

Usuarios habituales