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
) ,KEY, y hasta UNIQUE KEY
, no se cual sea la opcion correcta y ¿por que?
CREATE TABLE IF NOT EXISTS `contents`(
`id_content` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
`date_add` DATETIME,
`date_upd` DATETIME,
PRIMARY KEY(`id_content`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `contents_lang`(
`id_content` INT(11) UNSIGNED NOT NULL,
`id_lang` INT(10) UNSIGNED NOT NULL,
`title` VARCHAR(100) NOT NULL,
`description` TEXT NOT NULL,
PRIMARY KEY(`id_content`,`id_lang`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `lang`(
`id_lang` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(32) NOT NULL,
`active` TINYINT(1) NOT NULL DEFAULT '0'
`iso_code` CHAR(2) NOT NULL,
PRIMARY KEY(`id_lang`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
Saludos y doy gracias de ante mano