我需要制作一个库存数据库,我想出了以下内容:
STRUCTURE和CONTAINER的PK也是PLACE PK的FK。 PLACE还有一个PARENTID列,因此我可以将容器放在容器内和结构内。
因此,INV_ITEM可以存储在结构或容器中,容器可以放在另一个容器中,也可以放在具有递归关系的结构中。
与设备相同。我可以将它存储在一个结构本身或容器中。
问题是我还可以将一件设备,一个容器或一个库存物品存放在未指定为容器的设备中。例如,汽车和扳手都是设备,扳手可以存放在汽车内或汽车内的容器中。我该如何解决这个问题?
更新
更多细节
结构:具有各种用途的建筑物。可以是仓库,工厂,棚屋等
容器:用于存储的更具体位置,驻留在结构中。可以是物品,如垃圾箱或托盘,也可以是一个位置,如“抽屉3”。如果它是一个物理项目,唯一的目的是存储东西,它是一个容器,而不是设备。
设备:公司使用的工具。汽车,扳手,叉车。不作为产品销售。可以存储在结构或容器中。有一个“序列”列来唯一标识它。
INV_ITEM:产品,公司经常购买或销售的任何产品。股票。例如衬衫,烛台,太阳镜,螺丝。它还包括公司设备的燃料。可以存储在结构或容器中。有一个“库存量”栏目。
PLACE:解决STRUCTURE和CONTAINER之间独有弧问题的基表,允许我们将容器放在结构中。
答案 0 :(得分:0)
有几点。
因此,您可能需要考虑的一个更改是将PARENTID移动到Container。并且,除非这是作业,并且它是作业的一部分,不要担心将物品放入其他物品。这通常不是现实生活中的条件。