在相邻列表模型中的类别和父级的层次关系中将产品插入表中

时间:2013-02-17 09:09:51

标签: mysql database-design adjacency-list-model

我有一个由邻接列表模型组成的表类别:

id  name             parent_id
------------------------------
1   Clothing         0
2   Books            0
3   Computers        0
4   Mobiles          0
5   Movies           0
6   Music            0
7   Mens             1
8   Shirts           7
9   Formal Trousers  7
10  Jeans            7

和product_category表:

product_id fk
category_id fk
parent_id

并有一个产品表:

product_id
category_id
parent_id
prod_name
genre
unit price
image

如何在表中插入具有父id的链接的产品,然后又链接到category。这样我就可以从parent_id和类别中检索产品。 我应该将parent_id定义为主键.. 帮助赞赏..谢谢提前..

1 个答案:

答案 0 :(得分:1)

假设产品和类别之间的关系是M:N,并且类别和产品形成层次结构(彼此独立),您的模型应如下所示:

<强>类别:

category_id PK
parent_id FK -> category.category_id
(other fields...)

<强>产物:

product_id PK
parent_id FK -> product.product_id
(other fields...)

<强> PRODUCT_CATEGORY:

product_id FK -> product.product_id
category_id FK -> category.category_id
PK (product_id, category_id)

我不太清楚你的意思是:“我怎样才能在产品表中插入有父ID的链接,然后又链接到类别?假设您知道父产品的ID和类别的ID,您可以:

INSERT INTO product (product_id, parent_id, other fields...)
VALUES (whatever, known parent id, other values...)

然后将其连接到类别:

INSERT INTO product_category (product_id, category_id)
VALUES (what you inserted above, known category id)