![](/img/trans.png)
[英]Problem with many_many relationship with Silverstripe Fluent
[英]problem in many to many relationship
我有兩張桌子的jewelry(j_id,j_name,Description)
和style(style_id,style_name,image)
每張桌子與另一張桌子有很多關系,因為一個珠寶產品可以有多種款式,並且有更多款式相同的產品,因此這種關系是多對多的。
現在,我的問題是如何關聯這些表,即我想在珠寶表中插入一條記錄,並且一個珠寶產品應該有多種樣式。
在珠寶html頁面上,我想將樣式放入從樣式表中動態填充的多個選擇下拉列表中,如果用戶想為同一產品選擇兩個樣式,則可以。
我會推薦4張桌子,其中3張用於珠寶和款式,第四張用於訂購。
珠寶:吉德(PKEY),名字,描述
樣式:sid(PKEY),sname,描述
產品:pid(PKEY),sid(FKEY),jid(FKEY)-一種產品定義了樣式和編織的獨特組合
順序:oid(PKEY),pid(FKEY),其他詳細信息(名稱,地址等)
對於每個珠寶,使用產品表恢復關聯的樣式,然后在html頁面上填充字段。 對於每個訂單,請存儲產品ID,該ID可以唯一標識珠寶和款式。
不確定這是數據庫設計問題。 對我來說,它更像是一個編程問題,在這種情況下,了解您使用的是哪種編程語言和數據庫將很有幫助。
無論如何,這里有一些偽代碼可以滿足您的要求。
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 jewelry_style.j_id=@jid, jewelry_style.style_id = @StyleID
end
您的問題不是關於為這種多對多關系設計數據庫,而是關於在創建新的珠寶/樣式對象及其之間的關系時的插入策略?
在這種情況下,您的策略必須是插入您的主數據並在此之后相互關聯的事務。 萬一中止,您可以回滾事務,並且刪除創建的所有內容。 只要您正在進行交易並且隔離級別正確,沒人會看到臨時創建的數據
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.