我是 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 不太了解,但这就是当用户提交一个或多个产品时可以完成的事情
为每个实体创建表:
客户
(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/