现在有一个需求,仓库系统设计,仓库表的设计:仓库分为1号库区,2号库区, 库区再分小号库,小号库中再分在哪个角落,在哪个角落里面再细分为一个架子上面是上层,下层,还是中层。以此类推。这样的数据库表该怎么建?
请高人指点。
多谢了。。

解决方案 »

  1.   

    个人理解,这个仓储位置的最小单位应该是“架子”,所以应该把架子编上号。考虑到数据冗余等各方面因素,可以做如下设计:架子表 Shelf:架子 ShelfId,所在库区 Partition, 所在小号库 Section物品存放表 Stock:物品 ProductId,架子 ShelfId,层 Layer
      

  2.   

    如果这种需要灵活性的地方,你去搞个什么“某个品项在某个货架层里”,“某个货架层在某个货架上”,“某个货架在某个角落里”,“某个角落在某个小库里”......而且好要甚至为每一个“角落”都要分配唯一id号,这中八股分类法是不是非常非常地让人感觉心力交瘁?而且考虑到变动......实际上一个品项的角落只要写“东2南3区”或者“日杂区”就够了,用不着为不同的仓库、不同的小库里边的每一个角落都分别编写一个唯一id号。实际上看到某些“管理”软件那种软件一大堆id号,你会不会头疼呢?
      

  3.   

    越是知识性的东西,越是复杂的东西,其实越是反对动不动就八股地分层的。你看google那么多种类的信息,它就最反对分层,而是知识之间通过高效地网络关联来联系和查找。这样,开发软件就变了一种思路。比如说管理库存商品,核心不是八股地主机分层,而是直截了当地比较简单的品项(即每一个商品可能因批次、颜色、厂家、库位等属性的不同而细分)直接管理。它的软件一打开,从主界面就是管理直接了当的东西,不是搞一大堆层次最后才看到真正要管理的东西。就好象上互联网的首页或者次页一看就看到了最想看的,要是需要用户分开其它个页面跳转才能看到一个东西,然后再从头开始逐级去看别的东西,那么谁也不爱上这个网站了。可是某些搞OA或者财务软件的人就是养成了逐级分类的思路。
      

  4.   

    其实就是分级为题吗。你这个需求固定了就是“大仓库、小仓库、角落、架子层位”这4级,所以把这4个设置成商品属性就好了,多简单。
    如果级数不固定,例如CSDN的左侧菜单,那你就得用1楼的表结构,然后在代码里去创建了。