我可以在mysql中填充表而不会以重复的条目结束

时间:2015-04-23 17:11:16

标签: mysql database-design unique-key duplicates mysqli

我有一个数据库。但是,每当我尝试从购物页面向购物车桌面添加产品时,如果经常点击该项目的添加按钮,我会发现同一项目会多次添加到表格中。有没有一种方法,当用户点击特定项目的添加按钮时,如果它已经添加到购物车表格中,则无法再次添加。

请帮助我谢谢。我尝试在PHP中做其他事情,但不能。我需要这个帮助。

2 个答案:

答案 0 :(得分:1)

制作主键(cart_id,product_id)。如果用户尝试将现有产品添加到购物车,请增加数量。

create table cart_items (
  cart_id int,
  product_id int,
  quantity int default 1,
  primary key (cart_id, product_id)
);

insert into cart_items (cart_id, product_id) values
(1,1)
on duplicate key update quantity = quantity + 1;

insert into cart_items (cart_id, product_id) values
(1,1)
on duplicate key update quantity = quantity + 1;

http://sqlfiddle.com/#!9/da1ac/1

答案 1 :(得分:0)

您要向其中添加产品的表格的结构是什么?您可以在(userId,productId)列组合上放置唯一索引。这样可以防止同一产品的添加次数超过一次。不过,您可能希望查看Insert... on duplicate key update语法。