我正在开发一个 PHP Inventory 应用程序。但我被困在数据库设计中。逻辑是:
- 类别
- 1 类包含许多产品
- 一种产品有多种尺寸的瓶子,如 300 毫升、500 毫升、1 升,每种尺寸都有自己的价格
- 产品将被存储或移动到 2 或 3 个位置。如仓库、柜台等。
问题是如果我从货仓到柜台输入 6 个单位的产品,我如何通过数据库表来表示?我已经设计了数据库,但我无法弄清楚如何转移或移动股票的逻辑。这是设计:
![在此处输入图像描述][1]
我不能高度推荐鲍勃叔叔的这个视频:
您可以从中学到其他很棒的东西,特别是针对您的问题,外卖是您的数据库设计应该尽可能地推迟。您最好将您的数据库视为某种抽象接口并从您的业务逻辑开始。这将加深你对数据库真正需要什么的理解,什么样的 API 对你的逻辑与它通信有用。看起来您正陷入困境,因为您试图在开发业务逻辑之前确定您的数据库结构。
为了让您对您的问题有一个更具体的想法,您可能需要一个 table
PRODUCTS
,在那里您有product_id
,name
等。现在您似乎与 有一对多的关系PROD_SIZES
,它可以是另一个 tableprod_size_id
或任何作为primary key,product_id
如外键和size
,price
作为常规字段。但是,您可以改为压缩size
-price
对,JSON
并将其放在PRODUCT
表格的另一个字段中。这实际上取决于您的业务逻辑。
如果您将相同的项目存储在多个位置,您可能需要另一个表格LOCATIONS
,其中包含您需要的有关每个位置的所有信息。prod_size_id
然后你在和之间有一个多对多的关系,这是一个具有、、和location_id
的单独hash
表。现在要将一些单位从一个位置移动到另一个位置,您只需通过更改最后一列来弄乱最后一个表。id
prod_size_id
location_id
nr_of_units
希望能帮助到你。