SQL: какое отношение (1: 1, 1: m, m: m, ...) существует между этими двумя таблицами? - PullRequest
2 голосов
/ 22 октября 2010

Какое отношение (1: 1, 1: м, м: м и т. Д.) Существует между этими двумя таблицами?

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

Ответы [ 3 ]

2 голосов
/ 22 октября 2010

1 до «возможно» - нет гарантии, что в my_product_i18n будет строка, а составной первичный ключ идентификатора и культуры означает, что вы можете иметь несколько строк для данного идентификатора, при условии, что эти строки имеют разные культуры.

2 голосов
/ 22 октября 2010

Это отношение 1: М. Одна строка в my_product может содержать 0, 1 или более строк в my_product_i18n на основе столбца culture.

2 голосов
/ 22 октября 2010

Это 1: m, вы можете иметь несколько различных culture в my_product_i18n connected для каждого id.

Edit:
Это PRIMARY KEY ('id','culture') в сочетании с ограничением, которое говорит, что вы можете иметь много my_product_i18n.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...