加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 我的问题的DB结构是什么?

发布时间:2020-12-13 22:08:54 所属栏目:PHP教程 来源:网络整理
导读:将有许多不同的页面与产品. 产品数据来自数据库(id,名称,描述……)如果用户喜欢产品,他将能够点击名为“添加此项”的按钮,然后该按钮将更改为“添加”. 用户可以选择在他的“愿望清单”上添加几个产品.他之前选择的产品将显示为“已添加”. 作为初学者,我知
将有许多不同的页面与产品.

产品数据来自数据库(id,名称,描述……)如果用户喜欢产品,他将能够点击名为“添加此项”的按钮,然后该按钮将更改为“添加”.

用户可以选择在他的“愿望清单”上添加几个产品.他之前选择的产品将显示为“已添加”.

作为初学者,我知道必须有一种方法可以在添加该产品时将user_id与product_id连接在一起.

至于现在我有产品表.我想我必须创建另一个表,用user_id保存user_id?

谢谢你的想法,希望我能清理自己的想法.

解决方法

你走在正确的轨道上.您需要一个表格,将用户与他们选择的产品相关联:

CREATE TABLE selected_products
(
   choice_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,user_id INT NOT NULL,product_id INT NOT NULL,FOREIGN KEY (user_id) REFERENCES users (user_id),FOREIGN KEY (product_id) REFERENCES products (product_id)
) ENGINE=InnoDB;

以这种方式检索用户选择:

SELECT products.product_id,products.description 
FROM products JOIN selected_products ON products.product_id = selected_products.product_id
WHERE user_id = '$someuserid';

当用户希望从他的选择中删除产品时,您只需要删除一行:

DELETE FROM selected_products WHERE user_id = '$someuserid' AND product_id = '$product_id';

您的愿望清单表的功能与selected_products表完全相同.相同的结构,相同的关系.您还可以考虑添加另一列来指示添加产品时的时间戳:

date_added TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读