Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

dudas con la forma de almacenar el dni

Estas en el tema de dudas con la forma de almacenar el dni en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/07/2011, 12:20
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 2 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
  #2 (permalink)  
Antiguo 06/07/2011, 18:35
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: dudas con la forma de almacenar el dni

Primero las consideraciones:

Creo que no podes tener una tabla con dos claves primarias porque la idea es justamente que haya una sola unica.

Yo creo que deberias analizar las posibilidades y enseguida vas a ver cual es la mejor opcion.

Posibilidad 1: Hay dos numeros de documento iguales pero diferente letra. Aca no podes hacer que la primaria sea el numero de documento.

Posibilidad 2: Hay dos letras iguales pero diferente numero de documento (la mas probable) en este caso tampodo te sirve poner la letra como primaria, obviamente.

Posibilidad 3: Usas un id para cada campo insertado y tanto el documento como la letra van en otro campo. Luego cuando hago el insert mediante php o algun otro idioma hago que revise la ddbb para ver que no haya sido ingresado el numero de documento y ademas que la letra sea valida.
Me parece la mejor opcion.

Ojala te sirva.
Saludos...

Luciano

Etiquetas: almacenar, dni, dudas, php, sql, tabla, tablas, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:58.