Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2013, 10:42
Avatar de rgf1987
rgf1987
 
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 3 meses
Puntos: 22
Duda creacion tablas

Tablas

hola gente... tengo algunas dudas... tengo las siguientes tablas:

Tabla Articulos
Código MySQL:
Ver original
  1. CREATE TABLE `articulos` (
  2.   `idArticulo` int(11) NOT NULL AUTO_INCREMENT,
  3.   `idAutor` int(11) NOT NULL,
  4.   `tituloArticulo` varchar(50) DEFAULT NULL,
  5.   `resumenArticulo` varchar(500) DEFAULT NULL,
  6.   `coautoresArticulo` varchar(500) DEFAULT NULL,
  7.   `imagenArticulo` varchar(50) DEFAULT NULL,
  8.   `pdfArticulo` varchar(200) DEFAULT NULL,
  9.   `estadoArticulo` int(11) DEFAULT '1',
  10.   `idVolumen` int(11) DEFAULT '0',
  11.   PRIMARY KEY (`idArticulo`),
  12.   KEY `idUsuario` (`idUsuario`),
  13.   KEY `idEstado` (`estadoArticulo`),
  14.   KEY `idVolumen` (`idVolumen`),
  15.   CONSTRAINT `articulos_ibfk_1` FOREIGN KEY (`idAutor`) REFERENCES `usuarios` (`idUsuario`) ON DELETE CASCADE,
  16.   CONSTRAINT `articulos_ibfk_2` FOREIGN KEY (`estadoArticulo`) REFERENCES `estados` (`idEstado`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  17.   CONSTRAINT `articulos_ibfk_3` FOREIGN KEY (`idVolumen`) REFERENCES `volumenes` (`idVolumen`) ON DELETE NO ACTION ON UPDATE NO ACTION

Tabla Usuarios

Código MySQL:
Ver original
  1. CREATE TABLE `usuarios` (
  2.   `idUsuario` int(11) NOT NULL AUTO_INCREMENT,
  3.   `nickUsuario` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  4.   `contrasUsuario` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  5.   `nombreUsuario` varchar(20) NOT NULL,
  6.   `apellidosUsuario` varchar(20) NOT NULL,
  7.   `emailUsuario` varchar(40) NOT NULL,
  8.   `nivelUsuario` int(11) NOT NULL DEFAULT '6',
  9.   PRIMARY KEY (`idUsuario`)

Veamos en teoria la unica diferencia entre los usuarios es su nivel, pueden ser EditoresJefe, Editores, Revisores o Autores.

Un Articulo puede tener 0 ó 1 Editor
Un Editor puede tener 0 ó N Articulos

Un Articulo puede tener 0 ó N Revisores
Un Revisor puede tener 0 ó N Articulos

Un Artículo solo puede tener 1 Autor
Un Autor puede tener N Articulos

Me estoy haciendo un lío porque nose si mi idea es correcta...
El el caso de Articulos-Revisores se que tengo q crear una tabla intermedia.
Como se puede ver en el caso de Autores-Articulos he creado en la tabla Articulos una clave idAutor.

Debocrear tambien una clave ajena en el caso de Editores-Articulos?? Me faltan tablas?? O esta correcto.