数据模型概念的关系

时间:2016-03-06 20:33:28

标签: mysql database

我是SQL的新手,我很难弄清楚用于表格的关系。基本上我用PHP编写一个连接到数据库的网站,预先存在的客户可以在该数据库下订单。

数据库要求

  • 记录护手霜产品和销售列表
  • 记录所有产品的库存水平
  • 客户
  • 每位客户的每种产品的销售

现在我正考虑使用4张桌子:

  • 客户
  • 销售
  • 库存
  • 和某种连接表。

我非常清楚我将用于表格的字段,但我很难围绕表格之间的关系。

编辑:

Data model

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。

根据您的要求:

  1. 记录产品及其销售清单。为此,您需要一个Product表,每个产品作为一个单独的行,Order表,您可以存储每个可以包含许多产品的订单放置,从而显示需要联结表{{ 1}}或者你称之为(你的picutre中的OrderDetails)。关系是与Order_Product连接的Product和Order表,具有1:N关系(这是Order和Product之间N:N关系的实现)。这允许您订购包含多个产品的订单和可以多个订单显示的产品
  2. 记录所有产品的库存水平。为此,您可以使用现有的Order_Product表来保持当前存储量的跟踪。
  3. 客户端。这将需要另一个表Product,它与Customer处于1:N关系,因为一个客户可以下多个订单,但一个订单只与一个客户相连。
  4. 每位客户的每种产品的销售额。这基本上是您可以使用此数据库模型实现的SQL查询。
  5. 很高兴知道:

    • 公司是否想跟踪他们向客户出售的补货的订单?或者它只是一个CRM?
    • 您的数据库模型,只要它的关系模型不是特定于供应商的。这意味着如果您曾经切换到SQL Server或任何其他RDBMS,您的模型将不会发生变化。
    • 为什么创建联结表Order被视为良好做法?它避免了数据冗余,并且记住 - 关系数据库经过优化,可以快速处理多个表。
    • 尤其是在联结表中创建索引会加快查询的执行速度。看起来这将是您的模型中要查询的核心表。