Que no se repitan campos en sql

Tengo un dilema y quisiera saber si me podrías ayudar lo que pasa es que tengo un base de datos que contienen una tabla llamada a_cargo que te mostrare a continuación sus entidades y sus regristos
id_ingeniero ing_cargo ape_pat ape_mat ubicacion
1 martin tinoco contreras sistemas
2 hector savala ramírez sistemas
3 gonzalo fernández quiros sistemas
4 gonzalo fernández quiros sistemas
Bueno el dilema que tengo es que como puedes ver cada registro contiene su llave primaria hasta el 3, pero al momento de introducir otro registro automáticamente se va a poner la llave primaria numero 4 pero si yo pusiera el mismo nombre de la id 3 como se puede observar, no pasa nada se introduce el nombre y lo que quiero es que no aparezca el nombre por que si no se estaría duplicando y estaría mal, ya que en la regla de normalización no se pueden duplicar.
Hay una consulta que me restrinja el duplicar el nombre al igual que su apell pat y materno o esto se hace en la interface grafiaca de la base de datos.

1 respuesta

Respuesta
1
Puedes añadir un campo que sea la composición del nombre con sus apellidos, entonces deberás poner que sea unique key.
Por ejemplo,
ing_completo varchar(100) UNIQUE NOT NULL,
Con esto conseguirás que no se repita el nombre completo, porque si pones unique key los campos de ing_cargo, ape_pat o ape_mat no te permitiría repetir un nombre común o un apellido (ejemplo MARÍA SANCHEZ RAMÍREZ y MARÍA PEREZ PLOU).
Oye gracias me sirvió de mucho.
Mira yo voy hacer la interface gráfica con visual basic 2005 esto de restringir que se repitan datos se puede también hacer en la interface gráfica o sea en vb.net mediante una consulta o se tiene que hacer en sql.
Habría que estudiarlo pero tal como me planteas el caso, creo esto debería ser una restricción de base de datos y no de interface para asegurar la integridad de los datos.
Cuanto más trabajo haga la base de datos más segura será la interfaz.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas