【问题标题】:Order placing system and Multi-table entry下单系统和多表输入
【发布时间】:2011-03-21 21:20:35
【问题描述】:

我正在做这个项目,它基本上是使用 PHP/MySQL(codeigniter 框架)的 ERP 中的几个模块。

我不确定我应该如何集成下订单机制(和其他多表相关)功能。 例如。客户的订单由两个 MySQL 表(Order 和 Order-Detail)管理。 Order 表存储一般订单信息,而 Order-Detail 存储订购的产品信息(数量等),因为一个订单可以订购多个产品。

所以,我的问题是:

  • 这东西基本是怎么实现的(背后的逻辑)?

  • 在行业术语中如何称呼它(这样我就可以在 Google 上搜索现成的 JavaScript/AJAX 或 PHP 库或代码片段)?

【问题讨论】:

    标签: php mysql ajax codeigniter erp


    【解决方案1】:

    这个术语是关系数据库

    您可以使用 mysql 本身使用“innoDB”驱动表来构建关系数据库。

    其背后的逻辑如下(在您的情况下)

    您有 3 张桌子: - 用户(带有用户 ID、用户名、用户密码等) - PlacedOrders(带有 orderid、userid、productid) - OrdersDetails(带有 orderid、productid、orderdate、ammount 等) - 产品(带有 productid、productname、productweith 等)

    这里所有的 '...id' 名称都是主键

    对于用户,主 ID 是用户 ID 对于下达订单,主 ID 是 orderid 等等

    但有些表还有另一个“..id”,它是另一个表的主 ID。 就像表中的 userid 一样,placedorders 是用户的主要 id 这些 id 被称为 foreignID's

    这些 foreignID 相互关联。

    其背后的逻辑是,对于已下订单的表格,您不必包含用户名或密码之类的东西。

    当您拥有大量数据时,这可以防止冗余并提高数据库效率。

    关于如何在网站中使用它的更多提示: 用户首先使用表 users 中的数据登录。 然后他进入产品页面,选择产品和他要订购的数量。

    现在下订单时,订单将在 orderdetails 中进行 并且所有的变量(orderid、productid 和 userid)都将组合在放置的订单中

    现在对用户来说,这不是一种改进。

    但对你(或商店)来说,它是。 这种方式可以查看谁订购了仅使用placedorders表中的数据

    通过这种方式,您可以创建一个(搜索)页面,只需单击一下即可查看用户数据、产品详细信息和订单详细信息。

    现在,通过一些方便的脚本,您可以轻松地从产品、用户和订单中获取适当的数据,并将它们放在一个页面上,而您没有将所有内容都放在一个庞大的混乱数据库中

    【讨论】:

    • 非常感谢您的详尽解释,但我知道这一切。我的问题可能需要额外澄清。基本上,我想要一个来自(将提交到 2 个表 - 订单和OrderDetails),并且能够添加多个产品(因此,只有 OrderDetails 会有多个条目)。关键是在不重新加载页面的情况下实现这一点。例如,有一个加号图标,它将为新产品条目添加新的表单元素。当点击最后的提交时,1 个条目将进入 Order(db table),1 或 1+ 将进入 OrderDetails,使用 OrderID 作为 FK。
    猜你喜欢
    • 2021-07-11
    • 1970-01-01
    • 2018-02-22
    • 2011-11-09
    • 2013-01-08
    • 1970-01-01
    • 2014-11-21
    • 2013-09-08
    • 1970-01-01
    相关资源
    最近更新 更多