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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  ayuda con relaciones a db
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con relaciones a db  (Leído 3,786 veces)
PanConMantequilla

Desconectado Desconectado

Mensajes: 82



Ver Perfil
ayuda con relaciones a db
« en: 24 Mayo 2011, 00:43 am »

Hola a todos, estoy empezando a modelar bases de datos  :-[ (sigo leendo manuales) y mi duda es la sgte:

Modelo una db para 2 idiomas y no se que tipo de llave usar (PK,FK,unique, KEY, etc) a los campos que relacionan ambas tablas.

Mi duda esta en la tabla contents_lang y sus campos id_content e id_lang, pensaba nombrarlos FK con referencias a sus respectivas tablas pero busque ejemplos y vi que en otros casos a esos dos campos los usan como PK (2 llaves primarias, y las referencias :huh:) ,KEY, y hasta UNIQUE KEY  >:( , no se cual sea la opcion correcta y ¿por que?
 

Código
  1.  
  2. CREATE TABLE IF NOT EXISTS `contents`(
  3. `id_content` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  4. `name` VARCHAR(20) NOT NULL,
  5. `date_add` DATETIME,
  6. `date_upd` DATETIME,
  7. PRIMARY KEY(`id_content`)
  8. )ENGINE=MyISAM DEFAULT CHARSET=utf8;
  9.  
  10.  
  11.  
  12. CREATE TABLE IF NOT EXISTS `contents_lang`(
  13. `id_content` INT(11) UNSIGNED NOT NULL,
  14. `id_lang` INT(10) UNSIGNED NOT NULL,
  15. `title` VARCHAR(100) NOT NULL,
  16. `description` TEXT NOT NULL,
  17. PRIMARY KEY(`id_content`,`id_lang`)
  18. )ENGINE=MyISAM DEFAULT CHARSET=utf8;
  19.  
  20.  
  21.  
  22. CREATE TABLE IF NOT EXISTS `lang`(
  23. `id_lang` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  24. `name` VARCHAR(32) NOT NULL,
  25. `active` TINYINT(1) NOT NULL DEFAULT '0'
  26. `iso_code` CHAR(2) NOT NULL,
  27. PRIMARY KEY(`id_lang`)
  28. )ENGINE=MyISAM DEFAULT CHARSET=utf8;
  29.  
  30.  

Saludos y doy gracias de ante mano  ;)


En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: ayuda con relaciones a db
« Respuesta #1 en: 24 Mayo 2011, 14:08 pm »

Si tus tablas son MyISAM no tiene sentido usr claves foraneas, dado que todava no son soportadas por este motor.

Creo que deberias usar PK.

Saludos


En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
PanConMantequilla

Desconectado Desconectado

Mensajes: 82



Ver Perfil
Re: ayuda con relaciones a db
« Respuesta #2 en: 24 Mayo 2011, 17:19 pm »

Gracias por responder y aclararme lo de las FK en MyISAM, entonces usare 2 PK como tenia en mente, pero ahora como hago las referencias, pensaba hacer ingenieria inversa en workbench y ver mis tablas relacionadas (las lineas de tabla a tabla) para observar como va, como haria eso? porque las PK no llevan REFERENCES como las FK para hacer esos enlaces, aún no domino workbench y preferiria hacerlo a codigo

Gracias de ante mano
En línea

PanConMantequilla

Desconectado Desconectado

Mensajes: 82



Ver Perfil
Re: ayuda con relaciones a db
« Respuesta #3 en: 26 Mayo 2011, 01:41 am »

alguien podria explicar mi segunda duda  :-( :-( :-(
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: ayuda con relaciones a db
« Respuesta #4 en: 26 Mayo 2011, 05:50 am »

necesitas integridad referencial? utiliza innodb para las tablas, en vez de myisam...
En línea

Ojo por ojo, y el mundo acabará ciego.
PanConMantequilla

Desconectado Desconectado

Mensajes: 82



Ver Perfil
Re: ayuda con relaciones a db
« Respuesta #5 en: 26 Mayo 2011, 23:07 pm »

Gracias por responder, prefiero seguir usando myisam, y no es un requisito tener integridad referencial pero me gustaría que lo tenga para tener una mejor vista de toda la db completa, además ver las tablas sin integridad referencial en workbench u otra ide debe ser un lio el no ver instantaneamente que tabla se relaciona con otra  :-\
Aún no acepto la idea que no exista integridad referencial en myisam o no sé como soportan uds ver las tablas sin esas las lineas relacionales.. o se lo aguantan  :xD

saludos

PD: la integridad referencial a la que me refiero es solo a las lineas que unen un id de una tabla a otra, mas no la actualizacion o eliminacion en cascada
« Última modificación: 27 Mayo 2011, 00:08 am por PanConMantequilla » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cardinalidad de relaciones
Bases de Datos
anarquistadel89 1 9,061 Último mensaje 30 Noviembre 2009, 14:17 pm
por ^Tifa^
Duda relaciones de entidades
Bases de Datos
sionoo 6 8,240 Último mensaje 17 Mayo 2010, 07:23 am
por ^Tifa^
Ayuda a encontrar grafica de relaciones de information_schema postGres
Bases de Datos
Hadess_inf 0 3,244 Último mensaje 25 Noviembre 2010, 20:59 pm
por Hadess_inf
Inventan una máquina de besos virtuales enfocada a relaciones a distancia
Noticias
wolfbcn 4 2,404 Último mensaje 20 Julio 2012, 15:49 pm
por L3I_W0N6
[c] Programa que indica Relaciones
Programación C/C++
audiogalaxy. 1 2,043 Último mensaje 8 Abril 2013, 07:14 am
por audiogalaxy.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines