关于许多关系的问题

时间:2010-01-15 03:23:45

标签: database database-design innodb

我有以下表格

  1. 同类者
  2. items_similars = pivot table
  3. items-> similars有很多关系

    items_similars具有以下字段

    1. ITEM_ID
    2. similar_id
    3. 如果我使用InnoDB作为我的引擎,我是否需要在items.id和items_similars.id之间创建关系?或者在similars.id和items_similars.id之间?甚至两个?

      这样做有没有优势?

2 个答案:

答案 0 :(得分:1)

多对多关系AFAIK只能通过RDBMS中的转换表(数据透视表)实现。 “items_similar”表至少应包含“items_id”和“similar_id”,这些是“items”和“similars”表的主键中的外键。

答案 1 :(得分:0)

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
  )