2011-01-25 123 views
0

我有兩張表jewelry(j_id,j_name,Description)style(style_id,style_name,image)每張表與其他表有多對多的關係,因爲一件珠寶產品可以有多種款式,並且有更多的相同款式的產品,所以關係是很多很多。問題在多對多的關係中

現在我的問題是我怎麼能把這些表聯繫起來,即我想在珠寶表中插入單個記錄,並且應該有一個珠寶產品的多個樣式。

關於珠寶html頁面我想將樣式放在從樣式表動態填充的多個選擇下拉列表中,並且如果用戶想爲同一產品選擇兩種樣式,他們可以。

+0

您應該修改您的問題以反映下面的註釋。 「然後我怎麼能插入數據到第三個表...」 – 2011-01-25 16:37:54

+0

如果它適合你接受答案 – 2011-04-25 05:21:30

回答

0

我會推薦4個表格,3個用於珠寶和款式,另外4個用於訂單。

珠寶:JID(PKEY),jname,描述

風格:SID(PKEY),SNAME,描述

產品:PID(PKEY),SID(FKEY),JID(FKEY) - 均產品定義的風格和kewellery

訂購的獨特組合:OID(PKEY),PID(FKEY),其他詳細信息(姓名,地址等)

對於每個珠寶,使用該產品的表中恢復相關的款式和填充html頁面上的字段。 對於每個訂單,存儲產品ID,它唯一標識珠寶和款式。

+0

我不需要訂單表,所以如果我有上述三個表,那麼我怎麼能插入數據到第三個表,如珠寶首飾頁面有樣式下拉列表,並添加新(樣式)按鈕,如果我想從下拉菜單中選擇樣式,或者我想插入新樣式,所以我點擊添加新按鈕,然後轉到新的頁面,我可以添加新樣式然後去回到珠寶頁面填寫其他字段以及我所需的樣式並添加。我沒有得到的是數據插入到兩個表中更嚴格地如何將相關密鑰在第三個表中嵌入 – hunter 2011-01-25 12:21:34

0

不確定這是否是數據庫設計問題。對我來說,它看起來更像是一個編程問題,在這種情況下,知道你使用的是什麼編程語言和數據庫會很有幫助。

無論如何,這裏有一些僞代碼可以完成我認爲你正在詢問的內容。

Add one row in table jewelry 
Store the new jewelry.j_id to a variable @jid 

for each @StyleID in SelectedStyleList 
begin 
    Add one row to table jewelry_style 
    set [email protected], jewelry_style.style_id = @StyleID 
end 
0

你的問題不在於他們之間建立新的珠寶/風格的對象和關係,當設計數據庫這許多一對多的關係,但對插入策略?

在這種情況下,您的策略必須是插入主要數據的事務,然後是相互關聯的事務。在墮胎的情況下,您可以回滾交易,並刪除您創建的所有內容。只要您處於交易中且隔離級別正確,沒有人會看到臨時創建的數據