Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/11/2009, 00:49
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Podés darme vuestra opinión sobre este diseño?

Buenos días,

Me gustaría contar con vuestra experiencia en diseños de bbdd
Estoy diseñando un bbdd para la siguiente función y no se si voy bien encaminado.
Tengo 3 tablas (inscripciones, seminarios, pagos_tpv) y una que relaciona las tres inscripcion_seminarios_pagos

Idea: El usuario rellena un formulario de inscripción donde se puede apuntar a varios seminarios a la vez, a través de ese formulario se realiza un pago, los datos del pago los recibe otro script.

¿Creéis que el diseño es correcto? tengo mis dudas con la tabla inscripcion_seminarios_pagos

Muchísimas gracias de antemano!

Diseño:

Código:
-- Datos de las personas inscritas --
CREATE TABLE inscripciones (
	idInscripcion int NOT NULL auto_increment,
	nombre varchar(40) NOT NULL,
	apellidos varchar(40) NOT NULL,
	fnacimiento date,
	dni varchar(20),
	direccion varchar(90) NOT NULL,
	poblacion varchar(40) NOT NULL,
	cpostal varchar(10) NOT NULL,
	provincia varchar(20) NOT NULL,
	tel_particular varchar(10) NOT NULL,
	mov_particular varchar(10) NOT NULL,
	ema_particular varchar(50) NOT NULL,
	tel_profesional varchar(10),
	mov_profesional varchar(10),
	ema_profesional varchar(50),
	fax varchar(15),
	nos_conocio varchar(150) NOT NULL,
	pref_tel_particular char(1) default '0',
	pref_tel_profesional char(1) default '0',
	pref_ema_particular char(1) default '0',
	pref_ema_profesional char(1) default '0',
	idioma varchar(2) default 'es',
	PRIMARY KEY(idInscripcion)
);

-- Tabla relacion inscripciones, seminarios y pagos--
CREATE TABLE inscripcion_seminarios_pagos (
	idInscripcion int NOT NULL,
	idSeminario int NOT NULL,
	idPago int NOT NULL,
	PRIMARY KEY(idInscripcion,idSeminario,idPago)
);

-- Diferentes tipos de seminarios --
CREATE TABLE seminarios (
	idSeminario int NOT NULL auto_increment,
	nombre varchar(30) NOT NULL,
	fecha timestamp,
	PRIMARY KEY(idSeminario)
);

-- Pagos del TPV --
CREATE TABLE pagos_tpv (
	idPago int NOT NULL auto_increment,
	Ds_Date date NOT NULL,
	Ds_Hour time NOT NULL,
	Ds_SecurePayment TINYINT NOT NULL,
	Ds_Card_Country SMALLINT,
	Ds_Amount decimal(7,2) NOT NULL,
	Ds_Currency SMALLINT NOT NULL,
	Ds_Order varchar(12) NOT NULL,
	Ds_MerchantCode int(9) NOT NULL,
	Ds_Terminal SMALLINT NOT NULL,
	Ds_Signature varchar(40) NOT NULL,
	Ds_Response SMALLINT,
	Ds_MerchantData TEXT,
	Ds_TransactionType varchar(1) NOT NULL,
	Ds_ConsumerLanguage SMALLINT NOT NULL,
	Ds_ErrorCode varchar(7),
	Ds_AuthorisationCode varchar(6),
	PRIMARY KEY(idPago)
);