【问题标题】:PHP Inventory database designPHP Inventory 数据库设计
【发布时间】:2013-09-11 22:08:14
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你的意思是放一个链接到你的图片吗?
  • 请将您的图片上传到 Imgur 并以[1]: URL 的形式添加到您的帖子中。

标签: php transfer inventory stock


【解决方案1】:

我无法高度推荐 Bob 叔叔的这个视频:

Robert C Martin(Uncle Bob) -Clean Architecture and Design - Video

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

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

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

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2013-02-09
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2011-01-12
    相关资源
    最近更新 更多