2010-10-22 71 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行或更多行。

相關問題