我正在研究PHP Inventory应用程序。但我陷入了数据库设计的困境。逻辑是:
问题是如果我输入6个单位的产品从货仓到柜台,我怎么能通过数据库表来表示?我设计了数据库,但我无法弄清楚如何转移或移动股票的逻辑。这是设计:
![在此处输入图像说明] [1]
我不能给Bob叔叔推荐这个视频:
Robert C Martin(Uncle Bob) -Clean Architecture and Design - Video
除了你可以从中学习的其他伟大的东西,特别是你的问题,外卖是你的数据库设计应尽可能延迟。您最好将数据库视为某种抽象接口,并从业务逻辑开始。这将使您对数据库中真正需要的内容有所了解,哪种API对您的逻辑与之通信有用。看起来你正在陷入困境,因为你在开发业务逻辑之前试图确定数据库结构。
为了给你一个更具体的想法你的问题,你可能需要一个表PRODUCTS
,你有product_id
,name
等。现在你似乎有一对多的关系PROD_SIZES
,这可以是另一张桌子与prod_size_id
或其他作为主键,product_id
作为外键和size
,price
作为常规字段。但是,您可以将size
-price
对压缩为JSON
并将其放置在PRODUCT
表的另一个字段中。这将取决于您的业务逻辑。
如果您将相同的项目存储在多个位置,则可能需要另一个表格LOCATIONS
,其中包含您需要的有关每个位置的所有信息。然后你有prod_size_id
和location_id
之间的多对多关系,这是一个单独的hash
表有id
,prod_size_id
,location_id
和nr_of_units
。现在将一些单元从一个位置移动到另一个位置,只需更改最后一列就可以搞乱最后一个表。
希望能帮助到你。