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

Que Opinan de este diseño

Estas en el tema de Que Opinan de este diseño en el foro de Bases de Datos General en Foros del Web. Hola gente estoy por sacar a la web un sistema de notas, comentarios (visto por doquier) y puntos especie taringa y todos sus clones, aqui ...
  #1 (permalink)  
Antiguo 05/01/2009, 01:12
 
Fecha de Ingreso: junio-2008
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Que Opinan de este diseño

Hola gente estoy por sacar a la web un sistema de notas, comentarios (visto por doquier) y puntos especie taringa y todos sus clones, aqui les traigo como queda la base de datos para que udts expertos me digan o comenten sugerencias o criticas
Código PHP:
CREATE TABLE `notas` (
  `
notasIDint(10unsigned NOT NULL auto_increment,
  `
userIDmediumint(8unsigned NOT NULL,
  `
posterTimeint(10unsigned NOT NULL default '0',
  `
posterIPtinytext NOT NULL,
  `
titulotinytext NOT NULL,
  `
cuerpotext NOT NULL,
  `
tagsvarchar(16),
  `
categoriavarchar(16NOT NULL default 'xx',
   
FOREIGN KEY (`userID`) references usuarios,
   
PRIMARY KEY  (`notasID`)

ENGINE=MyISAM  DEFAULT CHARSET=utf8
Esta es la tabla notas que tendra en su cuerpo el codigo BBcode obvio, con tags, categorias, tiempo, un notasID incremental unico, y un userID que referencias a los usuarios ya registrados...


Código PHP:
CREATE TABLE `comentarios` (
  `
comentarioIDint(10unsigned NOT NULL auto_increment,
  `
notasIDint(10unsigned NOT NULL auto_increment,
  `
userIDmediumint(8unsigned NOT NULL,
  `
posterTimeint(10unsigned NOT NULL default '0',
  `
posterIPtinytext NOT NULL,
  `
cuerpotext NOT NULL,
   
FOREIGN KEY (`userID`) references usuarios,
   
FOREIGN KEY (`notasID`) references notas,
   
PRIMARY KEY  (`comentarioID`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8
Aqui en esta tabla se almacenara todo los comentarios, solo tendria que recorrer los comentarios de un notasID especifico y listarlos, en este caso el userID es el del usuario que comenta

Código PHP:
CREATE TABLE `puntos` (
  `
notasIDint(10unsigned NOT NULL auto_increment,
  `
userIDmediumint(8unsigned NOT NULL,
  `
puntosint(3NOT NULL,
  
   
FOREIGN KEY (`userID`) references usuarios,
   
FOREIGN KEY (`notasID`) references notas,
   
PRIMARY KEY  (`notasID`)

ENGINE=MyISAM  DEFAULT CHARSET=utf8

Aqui tendre todos los puntos que un usuario de a una nota, el userID es el del usuario que da puntos, puntos indica la cantidad, para saber los puntos de la nota recorreria esta tabla y de manera semejante la de un usuario...


Bueno critiquen lindo, gracias...
  #2 (permalink)  
Antiguo 06/01/2009, 13:14
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Que Opinan de este diseño

A simple vista parece que esta bien la unic acosita seria crear una tabla categorias y en la tabla nots colocar el id de la categoria por organizacion

de resto pareceque esta bien
  #3 (permalink)  
Antiguo 06/01/2009, 13:31
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Que Opinan de este diseño

recuerda que las tablas del tipo MyIsam no aceptan calves foráneas, tiene que ser InnoDB
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #4 (permalink)  
Antiguo 06/01/2009, 18:01
 
Fecha de Ingreso: junio-2008
Mensajes: 119
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Que Opinan de este diseño

Ok, gracias por sus opiniones, si lo de las categorias esta echo, y gracias por lo de InnoDB no sabia que las otras no aceptaba FOREIGN KEY
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 13:15.