2

我正在开发一个 PHP Inventory 应用程序。但我被困在数据库设计中。逻辑是:

  1. 类别
  2. 1 类包含许多产品
  3. 一种产品有多种尺寸的瓶子,如 300 毫升、500 毫升、1 升,每种尺寸都有自己的价格
  4. 产品将被存储或移动到 2 或 3 个位置。如仓库、柜台等。

问题是如果我从货仓到柜台输入 6 个单位的产品,我如何通过数据库表来表示?我已经设计了数据库,但我无法弄清楚如何转移或移动股票的逻辑。这是设计:

![在此处输入图像描述][1]

4

1 回答 1

0

我不能高度推荐鲍勃叔叔的这个视频:

罗伯特 C 马丁(鲍勃叔叔)-清洁建筑和设计 - 视频

您可以从中学到其他很棒的东西,特别是针对您的问题,外卖是您的数据库设计应该尽可能地推迟。您最好将您的数据库视为某种抽象接口并从您的业务逻辑开始。这将加深你对数据库真正需要什么的理解,什么样的 API 对你的逻辑与它通信有用。看起来您正陷入困境,因为您试图在开发业务逻辑之前确定您的数据库结构。

为了让您对您的问题有一个更具体的想法,您可能需要一个 table PRODUCTS,在那里您有product_id,name等。现在您似乎与 有一对多的关系PROD_SIZES,它可以是另一个 tableprod_size_id或任何作为primary keyproduct_id外键sizeprice作为常规字段。但是,您可以改为压缩size-price对,JSON并将其放在PRODUCT表格的另一个字段中。这实际上取决于您的业务逻辑。

如果您将相同的项目存储在多个位置,您可能需要另一个表格LOCATIONS,其中包含您需要的有关每个位置的所有信息。prod_size_id然后你在和之间有一个多对多的关系,这是一个具有、、和location_id的单独hash表。现在要将一些单位从一个位置移动到另一个位置,您只需通过更改最后一列来弄乱最后一个表。idprod_size_idlocation_idnr_of_units

希望能帮助到你。

于 2013-09-17T17:49:29.970 回答