2010-10-22 11 views
2

quel genre de relation (1: 1, 1: m, m: m, peu importe) il y a entre ces deux tables?SQL: quel genre de relation (1: 1, 1: m, m: m, ...) existe-t-il entre ces deux tables?

CREATE TABLE IF NOT EXISTS `my_product` (
    `id` int(11) NOT NULL auto_increment, 
    `price` float default NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

CREATE TABLE IF NOT EXISTS `my_product_i18n` (
    `id` int(11) NOT NULL, 
    `culture` varchar(7) NOT NULL, 
    `name` varchar(50) default NULL, 
    PRIMARY KEY (`id`,`culture`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 


ALTER TABLE `my_product_i18n` 
    ADD CONSTRAINT `my_product_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `my_product` (`id`); 

Répondre

2

Il est 1: m, vous pouvez avoir plusieurs culture dans my_product_i18n connected pour chaque id.

Edit:
Il est PRIMARY KEY ('id','culture') en conjonction avec la contrainte qui dit que vous pouvez avoir beaucoup my_product_i18n.

2

1 à "peut-être" - il n'y a aucune garantie qu'il y aura une ligne dans my_product_i18n, et la clé primaire composite de id et culture signifie que vous pourriez avoir plusieurs lignes pour un identifiant donné, à condition que ces lignes soient différentes des cultures.

2

Il s'agit d'une relation 1: M. Une ligne dans my_product peut avoir 0, 1 ou plusieurs lignes dans my_product_i18n en fonction de la colonne culture.

Questions connexes