2013-02-17 62 views
1

類別和家長的層次關係,我有鄰接列表模型由一個表類別:插入產品進入表在相鄰的列表模式

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 

我怎樣才能插入產品的表格,有鏈接到pare nt-id,並反過來鏈接到類別。以便我可以從parent_id和類別中檢索產品。 和我應該限定PARENT_ID作爲主鍵..預先 幫助appreciated..thanks ..

+0

給出這組數據,又該結果設置(即「產品」的內容)是什麼樣的? – Strawberry 2013-02-17 09:53:12

+0

我剛剛注意到你已經發布了一個[重複](http://stackoverflow.com/q/14919370/533120)。永遠不要這樣做!如果您需要提高問題的「可見度」,請收集足夠的信譽,然後開始[賞金](http://stackoverflow.com/privileges/set-bounties)。 – 2013-02-17 11:17:04

+0

@BrankoDimitrijevic我剛開始使用堆棧溢出..原來的問題是由我張貼..我只是想做一些調整.. ..對不起.. – 2013-02-17 14:42:25

回答

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) 
+0

感謝您的答案..真的很感激,但您是否將parent_ID描述爲所有三個表中的外鍵......我已經看到,成爲外鍵的列必須在某個表中聲明爲主鍵.. – 2013-02-17 15:02:09

+0

@VishalTorne _「列成爲必須在某個表中聲明爲主鍵的外鍵」_ - FK本身不必是一個鍵,它只需要_reference_ a(主鍵或備用鍵)。在我的模型中:'category.parent_id'引用'category'表的PK,'product.parent_id'引用'product'的PK,'product_category.product_id'引用'product'的PK和' product_category.category_id'引用'category'的PK。 – 2013-02-17 17:34:51

+0

感謝大家分享知識.. – 2013-02-17 17:44:51