2016-04-30 31 views
0

我有一個相當普遍的(我相信)的問題,但由於它的名稱(包),很難搜索(即我得到一切,但'物理包'的含義...)。RDBMS模型'包',也可以是另一個'包'的一部分

基本上我有一個可以打包的產品,比如在一個盒子裏面有兩個盒子。

然後,將這些單獨的盒子放入其中有10個盒子的盒子中。因此,總共有20個產品在一個盒子裏。然而,這種設置不一定必須是2/10,它可以是1/20或者甚至是更多的嵌套,例如,可以是1/20。 1/5/4(總共仍有20個產品)。

如何在某些RDBMS(例如MySql)中創建表/引用?

+1

Google與「數據庫設計」有關的「材料清單」。 –

回答

0

首先,在我看來,這不是數據庫設計問題,因爲大部分工作都應該澄清需求。

你給出的數據是什麼?這些是要存儲在數據庫中的。所有可以從中計算出來的數據都不需要存儲,因爲它們是多餘的。根據你的描述,我得出結論,一個盒子的產品數量是給定的,但盒子內產品的包裝(你的1/5/4例子)是不確定的。這將意味着,任何產品的包裝是允許的,只要總產品數不超過20家。爲了表達這一點,表的設計像

Product(id, name, ..., max_in_box, ...) 

就足夠了。

但是,這可能在物理上不令人滿意。不是任何包含20種產品的包裝數量實際上可能適合包裝盒。爲了表達這一點,您必須存儲產品,包裝和盒子的長度/寬度/高度,並從算法上確定特定組合是否適合。

如果您有不同類型的方框,則可能需要另一個擴展。現在max_in_box屬性不能放在產品中,而是放在一個將產品鏈接到盒子類型的單獨實體/表中。

相關問題