php - 如何链接我的产品以使其属于特定客户 - MYSQL

标签 php mysql

我是 MySQL 数据库的新手,我想询问如何链接客户提交的多个产品,以便我知道这些产品属于该客户。

目前在我的 PHP 中,当客户提交订单时,我会将他们的信息和产品保存到数据库中。我将通过以下方式链接 customer_info 和 payment_info 表:

UPDATE customer_payment_information 
SET customer_id = (SELECT customer_id FROM customer_information ORDER BY customer_id DESC LIMIT 1) 
ORDER BY customer_id ASC LIMIT 1;

这样,customer_id(参见图片)将具有相同的值。

现在,如果客户提交了两个或多个产品并且这些产品具有 customer_id,我该如何编写查询?

结帐购物车表: checkout cart table & checkout cart table configuration

客户信息表: customer info table & customer info table configuration

付款信息表: payment info table & payment info table configuration

新表关系:NEW TABLE RELATION

最佳答案

检查您的数据库和应用程序设计

您将客户信息与付款信息链接的方式是错误的。它在这种特定情况下部分有效,因为您只是创建客户,因此插入客户表中的最后一个 ID“必须”链接到付款。 但这是一种黑客行为,我强烈建议您避免这些类型的假设,它可能会以多种不同的方式进行破坏。仅当您注册付款时,您的客户是新客户时,它才有效(否则,他已经在数据库中的另一个 ID 中,并且付款将链接到错误的客户)。

您需要的是一种在链接到付款表之前检索良好客户 ID 的方法。问题是你的表设计得不够好来处理你的情况。我对 PHP 不太了解,但这就是当用户提交一个或多个产品时可以完成的事情

  1. 为每个实体创建表:

    • 客户(ID、名字、姓氏、电子邮件、电话...)
    • Customer_Payment(id、credit_card_number、ccv、expiration_date、...、customer_id)
    • 产品(ID、名称、价格...)
    • 订单(id、customer_ payment_id、product_id、数量)

Custom_Payment 表中,custom_id 将是引用 Customer 表的外键。这样,一个客户就可以注册多张信用卡。 订单将是链接到具有给定数量的客户付款产品

  • 在您的网站中应用正确的逻辑

    • 当新客户在您的网站上注册时:使用插入 SQL 查询填写 Customer 表。他还可以填写一种或多种付款方式。添加的每笔付款都将在 Customer_Payment 表中插入一个新内容。

    • 产品逻辑相同,您网站上的每个产品都应在产品表中占据一行

    • 当登录的客户到达产品页面并点击给定数量的“购买”按钮时,应在订单表中插入一个新行(引用产品和客户付款信息)

  • 这是一个(简单的)示例,只是一个实现的想法。您需要使其适应您的需求,但主要思想是您应该真正考虑您的数据库和应用程序设计,否则您将很快陷入奇怪的情况,您的设计将不允许您制作出可用的软件。

    关于php - 如何链接我的产品以使其属于特定客户 - MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58890393/

    相关文章:

    php - 提供的参数不是有效的mySQL资源

    mysql - 如何在mysql中选择今天前7天的生日

    php - 基于随机顺序的下一个和上一个MYSQL

    php - 自动填充输入表单数组

    php - 如何使用 PHP 为每个注册用户提供他们自己的 url?

    mysql - 如何获得MySQL行的最大大小?

    javascript - 如何从同一个类中的另一个方法检索最后插入的 id?

    php - Joomla SEO 友好 URL 的原因注册链接不起作用 (1.5.26)

    php - isset 返回 '1'

    php - Laravel 仅从数据库中抛出一组数据