2010-10-22 64 views
2

这两张桌子之间有什么样的关系(1:1,1:m,m:m,无论)?SQL:这两个表之间有什么样的关系(1:1,1:m,m:m,...)?

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`); 

回答

2

它是1:M,你可以有几种不同的culturemy_product_i18n connected每个id

编辑:
正是在以告诉你可以有很多my_product_i18n约束相结合PRIMARY KEY ('id','culture')

2

1 to“maybe” - 无法保证my_product_i18n中会有一行,而id和culture的复合主键意味着您可以有多个给定id的行,只要这些行不同文化。

2

这是1:M的关系。根据culture列,my_product中的一行可以在my_product_i18n中有0行,1行或更多行。

相关问题