2016-04-30 62 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属性不能放在产品中,而是放在一个将产品链接到盒子类型的单独实体/表中。

相关问题