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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |