2015-05-02 256 views
0

我有話要問,希望你們能給我一些建議。詳細信息sql

我有many to many[ORDER] table[PRODUCT] table之間的關係。

現在條件是我需要一個表,再次調用[PACKAGE] tablemany to many關係太[PRODUCT] table

在這種情況下,我想鏈接[PACKAGE] table[ORDER] table。因爲條件是人們可以在same order form中訂購item或訂購package

如果我只將[PACKAGE] table鏈接到[ORDER] table,這是真正的方法嗎?

+0

如果您有多對多的關係,那麼您需要一個名爲orderProducts的橋接表。如果我正確地理解了你,你可以打包與他們相關的特定產品。如果是這種情況,請在後端服務器的業務邏輯中處理,以便將包中的產品插入orderProducts。 – Rogala

回答

0

這裏有兩個選項。

第一個是引入一個名爲OrderPackages的新表,該表提供了包的鏈接。但是,我不喜歡這種方法,因爲您無法輕鬆查詢訂單中的所有項目。訂單中的商品可能位於OrderItemsOrderPackages之間。

SQL在「one-of」類型的關係中非常糟糕。這是你真正想要的 - 一個訂單鏈接到一個項目或一個包,但不是兩個。

我的建議是將所有物品包裝在自己的包裝中,然後有一個OrderPackages表和一個PackageItems表。這將使所有查詢一致,並且應該很容易在任何數據庫中實現。

您可以通過使用觸發器或將insert代碼包裝在存儲過程中,爲兩個表中的插入操作自動創建新項目的新包。