Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/07/2011, 12:20
albertrc
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 3 meses
Puntos: 1
dudas con la forma de almacenar el dni

Ayuda con dni php y mysql

tengo diferentes puntos de vista y no se cual elegir y tampoco qual es el mejor

quiero crear un formulario y que el usurario tenga que entrar el dni el nombre y apellidos
los del nombre y apellidos lo tengo bastante claro
varchar(15) i varchar(25) y not null

-podría hacer que el usuario entrara los 8 números del dni y haciendo modulo de 23 obtener la letra
creo que este sistema es mas seguro porque así los 8 números solo pueden tener un tipo de letra

si alguien entrara el mismo numero tendría que mostrar un mensaje de error diciendo que este numero ya existe, en cambio si la letra la puede entra el podría hacer 23 combinaciones distintas con el mismo numero

-también podría crear un desplegable para que puede seleccionar 1 de las 23 letras

-o también podría hacer un input y que introduzca la letra el pero podría entra I,O,U y se tendría que validar para que no entre estas letras o entre un numero y otras cosas
espero que me podais ayudar

con respecto en la base de datos
-solo tendría que guardar los 8 numero que fuera lleve primaria
y con los 8 números hacer modulo de 23 y obtener la letra pero sin guarda la letra en la base de datos
-crear una tabla con 2 llaves primarias una 8 números i la otra la letra
-o guardar el campo como char(9) tanto la letra como el numero en el mismo campo
-otra posibilidad seria hacer 2 tablas una para los los números de dni y otra con las letras de dni
una relación 1:N 1 numero de dni solo puede tener un tipo de letra y 1 letra de dni la pueden tener muchos dnis

si hago un desplegable para poder seleccionar el tipo de letra hacer una tabla con las 23 letras guardadas en la base de datos, creo que se podría hacer con una relación 1:N entre numero de dni y letra de dni
tabla: usuario guardar numero de dni, nombre, 1er apellido, 2on apellido y otra tabla con la letra de dni tanto numero de dni como letra de dni son llave primaria y la letra dni seria llave forana de la tabla usuario