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?
Código
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