MySQL - ¿Necesito clave compuesta en mi tabla?

   
Vista:

¿Necesito clave compuesta en mi tabla?

Publicado por carlos (9 intervenciones) el 19/05/2014 17:50:06
Hola,

A ver si alguien me puede aconsejar. En phpmyadmin Tengo una tabla EMPRESA y otra de CLIENTES tal que así:



Como veis, ya existe una clave primaria-única que es ID_Empresa.

Por otro lado, no puedo poner como clave única ni Razón-Social ni CIF_Empresa porque puede haber 2 empresas que tengan la mismo Razón_Social y el mismo CIF_Empresa (sería la misma empresa con varias delegaciones). Tienen la misma Razón_Social, incluso el mismo CIF_Empresa pero diferente delegación. Por ejemplo:

ID_Empresa: 111
Razón_Social: Coca-Cola
CIF. 30003
Delegación: Madrid

ID_Empresa: 112
Razón_Social:: Coca-Cola.
CIF. 30003
Delegación. Barcelona

Mi pregunta es ¿debería crear una clave única compuesta que sea Razon_Social y Delegación? Ya que no puede haber en mi tabla 2 empresas que tenga esos 2 campos iguales?

¿O no es necesario crear esa clave? Claro, me gustaría si algún día por lo que fuera intento crear 2 empresas con la misma Razon_Social y misma delegación, pues que me de un error..

Y entonces, ¿también debería crear un clave compuesta CIF_Empresa y Delegación? Para no duplicarlo, ya que tampoco puede haber 2 registros con esos 2 campos iguales.

Muchas gracias por vuestro comentarios, un saludo,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

¿Necesito clave compuesta en mi tabla?

Publicado por xve (899 intervenciones) el 19/05/2014 18:54:38
Hola Carlos, yo crearia una clave que fuera id_empresa, CIF y Delegación... entiendo que es lo mismo que Razón social y Delegación, pero en la razón social, puede haber diferencias en el nombre... por ejemplo:

1
2
Empresa, S.L.
Empresa,S.L.
son diferentes valores, ya que uno tiene un espacio mas que e otro.

Espero que te sirva de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Necesito clave compuesta en mi tabla?

Publicado por carlos (9 intervenciones) el 19/05/2014 23:00:03
Hola. Te refieres a que quite la clave primaria ID_Empresa y que ponga como clave primaria una compuesta por: ID_Empresa, CIF y Delegación? Pero entonces podría haber dos empresas con el mismo CIF y con la misma delegación y sería un duplicado: Por ejemplo esto sería válido:

ID_Empresa: 111
Razón_Social: Coca-Cola
CIF. 30003
Delegación: Madrid

ID_Empresa: 112
Razón_Social:: Coca-Cola.
CIF. 30003
Delegación. Madrid

No lo veo claro
Gracias por los comentarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

¿Necesito clave compuesta en mi tabla?

Publicado por xve (899 intervenciones) el 20/05/2014 07:58:48
Hola Carlos, ese ejemplo que me muestras,no deberia de darse nunca,no?

Como vas a tener una misma empresa con una misma delegación y un mismo CIF repetido en la base de datos? que sentido tiene? porque se va a dar el caso de que se entre dos veces la misma empresa... ahí es donde debería decirte que no se puede añadir, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Necesito clave compuesta en mi tabla?

Publicado por Carlos (9 intervenciones) el 20/05/2014 10:17:41
Hola.

Efectivamente, mi programa en php no dejarà añadir una misma empresa con la misma delegación. Pero alguna vez por algún motivo hay que meter a pelo en la base de datos alguna empresa. En ese caso necesito que la propia base de datos me niegue ese caso, así nadie sin querer darà de alta una misma empresa con una misma delegación sin querer. Si que debe dejar ańadir una misma empresa con delegaciones distintas.

Creo que quizàs ademàs de tener la clave primaria ID-Empresa, sería bueno otra clave única que no te permita meter una misma empresa con la misma delegación, pero no sé muy bien como hacerlo...

Un saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar