elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Duda sobre claves primarias
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre claves primarias  (Leído 5,110 veces)
Shon

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Duda sobre claves primarias
« en: 10 Diciembre 2010, 16:00 pm »

Hola!!!

Avisar que mis conocmientos de sql y mysql son mínimos.

les cuento que quiero hacer,

Quiero una tabla clientes con información básica, pe:

-----------
clientes
------------
idclientes
nombre
apellidos
...
------------

Quiero hacer otra tabla de informacion detallada de otros temas que pertenezcan a estos usuarios, pe deportes que practica:

deportes
-------------
iddeportes
idclientes
tipo
lugar
....

Y más tablas así: trabajo, ocio, etc...

Mi duda es, en la tabla deportes, para relacionar esta con el cliente en concreto, debo poner iddeportes como primaria y idclientes como foránea, o directamente se pone idclientes como primaria y foranea al mismo tiempo?

Un saludo y gracias  ;)


En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: Duda sobre claves primarias
« Respuesta #1 en: 10 Diciembre 2010, 16:17 pm »

Te lo explicare con un sencillo ejemplo.
Cuando vas a crear las relaciones en tu base de datos primero debes tener claro como harás las relaciones, debes crear las tablas padre antes que las hijas.

 Una tabla padre se puede relacionar de uno a muchos por ejemplo:

pk = primary key - clave primaria
fk = foreign key - clave foránea

Citar
Tabla País
IdPais pk
Nombre_Pais

esa sería nuestra tabla padre, sabemos que un país tiene muchos estados, entonces la relación es de 1 a muchos.

creamos la tabla hija.

Citar
tabla Estados
idEstado pk
NombreEstado
IdPais fk

la tabla hija en este caso es quien debe llevar la clave foránea, es decir, el cambo que relaciona con la pk de la tabla padre.

Citar
Tabla País                                   Tabla Estados
IdPais pk --------------------------     Id Estado
Nombre_Pais                           |      NombreEstado
                                                 |->  IdPais fk
                                   
Hay otro tipo de relaciones como las de 1 a 1, pero ese es otro tema.
Código:
http://sistemas.itlp.edu.mx/tutoriales/basedat1/index.htm


« Última modificación: 10 Diciembre 2010, 16:23 pm por cassiani » En línea

JuanRaGD

Desconectado Desconectado

Mensajes: 22


Smart Device Development


Ver Perfil
Re: Duda sobre claves primarias
« Respuesta #2 en: 10 Diciembre 2010, 16:19 pm »

Buenas.

En la tabla deportes tendrias que poner idDeporte como PK(primary key) y idCliente como FK(foreign key), tienes que ver bien como se relacionan las tablas porque puede haber otra tabla que las relacione.
 
Ej de tablas:
<Cliente>1---<Realizan>-----N<Deportes> en este caso tenes 1 cliente realiza muchos deportes te queda la id de cliente en la tabla deportes sin la tabla realizan.

<Cliente>N---<Realizan>-----N<Deportes> en este caso tenes muchos clientes pueden realizar muchas deportes XD y la diferencia esta en que las PK idCliente y idDeportes van en la tabla Realizan.
Te queda:
Cliente(IdCliente,Nombre,Apellido,bla bla)
Deportes(IdDeportes,Tipo,Lugar,bla bla)
Realizan(IdCliente,IdDeportes)

Tienes que ver cual es tu caso, cualquier cosa si estoy mal en algo que alguien me corrija, de esa forma aprendemos  :P

Saludos.
En línea

“La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no”
– Albert Einstein
Shon

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Duda sobre claves primarias
« Respuesta #3 en: 10 Diciembre 2010, 16:44 pm »

A ver, por lo que he leido en ese tutorial y lo que me comentáis, lo que yo quiero debe ser una relación uno a uno o eso creo jeje

Un cliente tendrá una información laboral.
Y una información laboral corresponderá a un sólo cliente.

Este razonamiento estaría bien, verdad?

Si está bien, entonces:

la tabla clientes tiene su idclientes que es su pk.

La tabla informacionlaboral que pk tendría?
Yo creo que tendría que ser directamente la pk idclientes de la tabla clientes:

create table clientes (
idclientes int not null auto_increment,
nombre varchar(50),
etc,
primary key(idclientes)
);

create table informacionlaboral (
idclientes int not null,
empresa varchar(50),
...
Aquí le meto fk a idclientes que relacione a idclientes a tabla clientes, o tengo que declarar una pk por narices. O se puede declarar fk y pk a idclientes a la vez?


Gracias!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DUDA: sección con claves « 1 2 »
PHP
JammDesigner 11 4,871 Último mensaje 6 Agosto 2007, 15:22 pm
por JammDesigner
duda sobre nuevas claves para jazztel_XXXX
Hacking Wireless
korbatu 1 4,910 Último mensaje 9 Enero 2012, 13:01 pm
por Seaworth
llaves foraneas y primarias
Bases de Datos
m@o_614 1 2,623 Último mensaje 2 Mayo 2013, 06:53 am
por Carloswaldo
Iglesia satanista eeuu manda libros infantiles pra colorear a escuelas primarias « 1 2 »
Foro Libre
daryo 13 7,069 Último mensaje 16 Octubre 2014, 23:51 pm
por Orb
wifislax64 instalación Gparted 4 particiones primarias
Wireless en Linux
xtrusion 0 2,826 Último mensaje 25 Diciembre 2017, 14:12 pm
por xtrusion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines