首页 > 解决方案 > 如何将用户购买的商品保存在数据库中并防止他再次购买

问题描述

我需要一些帮助来存储用户购买和下载的文件。我有一个包含文件及其 ID 的表格。当用户购买和归档时,它只是将他重定向到下载链接。但我想让 PHP 脚本将用户购买的文件的 ID 插入数据库。但是如何处理多个文件并将其 ID 存储在每个用户的 1 个字段中。例如,我有 10 个文件,用户购买了 1、2、3、8、9 文件。我想将这些数字存储在数据库中,并花一些时间来显示与这些 ID 对应的链接。

标签: phpmysqlfieldstore

解决方案


您需要创建一个user_files包含两列的表,user_idfile_id形成一个复合主键:

CREATE TABLE user_files (
  user_id         INT NOT NULL,
  file_id         INT NOT NULL,
  PRIMARY KEY (user_id, file_id),
  FOREIGN KEY (user_id) REFERENCES users(id),
  FOREIGN KEY (file_id) REFERENCES files(id),
);

如果用户1购买文件1,2,3,8,9,你会这样做

INSERT INTO user_files (user_id, file_id) VALUES (1,1), (1,2), (1,3), (1,8), (1,9)

然后,当您需要检查用户是否购买时,只需检查表中是否存在该 user_id / file_id 组合。


推荐阅读