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) );