PortalMusica.com/sql/PMusica.ddl
2021-09-12 22:43:41 +02:00

224 lines
9.1 KiB
SQL

CREATE TABLE news (
id INTEGER NOT NULL AUTO_INCREMENT,
fecha DATE NOT NULL,
uid INTEGER,
asunto VARCHAR(50),
noticia TEXT,
PRIMARY KEY (id),
CONSTRAINT news_users FOREIGN KEY (uid)
REFERENCES users (id)
);
CREATE TABLE users (
id INTEGER NOT NULL AUTO_INCREMENT,
idg INTEGER,
nick VARCHAR(15),
level INTEGER NOT NULL DEFAULT 0,
ultimaEntrada DATE,
primeraEntrada DATE,
pass VARCHAR(15),
Nombre VARCHAR(15),
Apellidos VARCHAR(25),
fechaNacimiento DATETIME,
calle VARCHAR(30),
ciudad VARCHAR(15),
provincia VARCHAR(15),
nacionalidad VARCHAR(15),
cp INTEGER,
telefono VARCHAR(15),
mobil VARCHAR(15),
email VARCHAR(50),
usaCorreo ENUM('Y','N') DEFAULT 'N',
preguntaSecreta VARCHAR(25),
respuestaPregunta VARCHAR(25),
PRIMARY KEY (id),
CONSTRAINT usuario_controla_grupo FOREIGN KEY
(idg) REFERENCES grupos (id)
);
CREATE TABLE miniChat (
id INTEGER,
fecha DATE,
hora TIME,
uid INTEGER DEFAULT 0,
msg VARCHAR(80),
CONSTRAINT users_miniChat FOREIGN KEY (uid)
REFERENCES users (id)
);
CREATE TABLE encuestas (
id INTEGER NOT NULL,
fecha DATE,
validaHasta DATE,
pregunta VARCHAR(50),
resp1 VARCHAR(35),
vresp1 SMALLINT DEFAULT 0,
resp2 VARCHAR(35),
vresp2 SMALLINT DEFAULT 0,
resp3 VARCHAR(35),
vresp3 SMALLINT DEFAULT 0,
resp4 VARCHAR(35),
vresp4 SMALLINT DEFAULT 0,
uip VARCHAR(15),
PRIMARY KEY (id)
);
CREATE TABLE useronline (
hora INTEGER NOT NULL,
ip VARCHAR(15) NOT NULL,
uid INTEGER NOT NULL,
PRIMARY KEY (hora),
INDEX (ip),
INDEX (uid),
CONSTRAINT users_useronline FOREIGN KEY (uid)
REFERENCES users (id)
);
CREATE TABLE artistas (
id INTEGER NOT NULL AUTO_INCREMENT,
FAlta DATETIME NOT NULL,
Nombre VARCHAR(15),
Apellido VARCHAR(40),
Instrumento VARCHAR(50),
Foto_mime VARCHAR(50),
Foto_W INTEGER,
Foto_H INTEGER,
Telefono1 VARCHAR(15),
Telefono2 VARCHAR(15),
NIF VARCHAR(20),
Calle VARCHAR(50),
Localidad VARCHAR(20),
Provincia VARCHAR(20),
CP INTEGER,
url VARCHAR(50),
e_Mail VARCHAR(30),
FechaNacimiento DATE,
comentario TEXT,
PRIMARY KEY (id),
INDEX (FAlta)
);
CREATE TABLE grupos (
id INTEGER NOT NULL AUTO_INCREMENT,
ide INTEGER,
FAlta DATE,
nombre VARCHAR(50),
comentario TEXT,
cache VARCHAR(50),
equipoSonidoLuces VARCHAR(50),
estadisticas TINYTEXT,
croquiMusicos VARCHAR(100),
sugerenciasGrupo VARCHAR(50),
contratacion TINYTEXT,
imagen VARCHAR(50),
PRIMARY KEY (id),
CONSTRAINT estilos_grupo FOREIGN KEY (ide)
REFERENCES estilos (id)
);
CREATE TABLE componentesGrupo (
idg INTEGER NOT NULL,
idp INTEGER NOT NULL,
PRIMARY KEY (idg),
INDEX (idp),
CONSTRAINT artistas_componentesGrupo FOREIGN
KEY (idp) REFERENCES artistas (id)
);
CREATE TABLE estilos (
id INTEGER NOT NULL AUTO_INCREMENT,
parent INTEGER NOT NULL DEFAULT 0,
titulo VARCHAR(50),
descr TINYTEXT,
Foto_mime VARCHAR(50),
Foto_w SMALLINT,
Foto_h SMALLINT,
PRIMARY KEY (id),
INDEX (parent)
);
CREATE TABLE discos (
id INTEGER NOT NULL AUTO_INCREMENT,
idg INTEGER,
ide INTEGER,
FAlta DATE,
FEdicion DATE,
ids SMALLINT DEFAULT 3,
titulo VARCHAR(50),
pv NUMERIC(6,2),
comentario TEXT,
PRIMARY KEY (id),
CONSTRAINT discos_grupo FOREIGN KEY (idg)
REFERENCES grupos (id),
CONSTRAINT estilo_disco FOREIGN KEY (ide)
REFERENCES estilos (id),
CONSTRAINT tipo_del_disco FOREIGN KEY (pv)
REFERENCES TiposDiscos (id)
);
CREATE TABLE extrasDiscos (
id INTEGER NOT NULL AUTO_INCREMENT,
idd INTEGER,
tipo CHAR DEFAULT 'O',
id_data INTEGER,
file VARCHAR(50),
W INTEGER,
H INTEGER,
PRIMARY KEY (id),
CONSTRAINT extras_de_un_disco FOREIGN KEY
(idd) REFERENCES discos (id)
);
CREATE TABLE cancionesDisco (
id INTEGER NOT NULL AUTO_INCREMENT,
idd INTEGER,
posicion SMALLINT NOT NULL,
duracion TIME,
titulo VARCHAR(50),
f_partitura VARCHAR(50),
f_audio VARCHAR(50),
f_letra VARCHAR(50),
INDEX (id),
INDEX (id, posicion),
PRIMARY KEY (id),
CONSTRAINT canciones_del_disco FOREIGN KEY
(idd) REFERENCES discos (id)
);
CREATE TABLE eventos (
id INTEGER NOT NULL AUTO_INCREMENT,
idg INTEGER NOT NULL,
FAlta DATE,
FEvento DATE NOT NULL,
HEvento TIME,
Lugar VARCHAR(30),
Titulo VARCHAR(50),
Notas TEXT,
PRIMARY KEY (id),
INDEX (idg, FEvento),
CONSTRAINT eventos_grupo FOREIGN KEY (idg)
REFERENCES grupos (id)
);
CREATE TABLE TiposDiscos (
id INTEGER NOT NULL AUTO_INCREMENT,
pvp NUMERIC(8,2),
descrCorta VARCHAR(20),
descrLarga TEXT,
PRIMARY KEY (id)
);
CREATE TABLE publicidad (
id INTEGER NOT NULL AUTO_INCREMENT,
FAlta DATE,
anunciante VARCHAR(50),
descr VARCHAR(50),
url VARCHAR(90),
tipo CHAR DEFAULT 'H',
nVistos INTEGER DEFAULT 0,
nVisitas INTEGER DEFAULT 0,
filename VARCHAR(30),
PRIMARY KEY (id)
);