вопрос о многих-многих отношениях - PullRequest
1 голос
/ 15 января 2010

У меня есть следующие таблицы

  1. товар
  2. похожести
  3. items_simils = сводная таблица

items-> Аналог имеет отношение многие-многие

items_simils имеет следующее поле

  1. item_id
  2. similar_id

если я использую InnoDB в качестве своего движка, нужно ли мне создавать отношения между items.id и items_s Similars.id? или между Similars.id и items_s Similars.id? или даже оба?

Есть ли преимущества в этом или нет?

Ответы [ 2 ]

1 голос
/ 15 января 2010

Отношения «многие ко многим», AFAIK, могут быть реализованы только через таблицы переходов (сводные таблицы) в СУБД. Таблица "items_simil" должна иметь как минимум "items_id" и "Similar_id", которые являются внешними ключами первичных ключей таблиц "items" и "Similars".

0 голосов
/ 15 января 2010

itemsimilar_model_01

CREATE TABLE item_similar
  ( 
   item_id int NOT NULL
  ,similar_id int NOT NULL
  ,PRIMARY KEY ( item_id, similar_id )
  ,FOREIGN KEY ( item_id ) REFERENCES item ( item_id ) ON UPDATE CASCADE
    ON DELETE NO ACTION
  ,FOREIGN KEY ( similar_id ) REFERENCES similar ( similar_id ) ON UPDATE CASCADE
    ON DELETE NO ACTION
  )
...