在MYSQL Workbench中创建购物车

5fjcxozz  于 2022-11-21  发布在  Mysql
关注(0)|答案(1)|浏览(148)

我正在创建一个购物车,其中用户可以在购物车中有多个项目,但不能重复,并且多个用户可以在购物车中有相同的列表。我不知道如何阻止用户多次将相同的项目添加到购物车中。
第一个

dced5bon

dced5bon1#

如何防止用户多次向购物车添加相同的商品
只需在cart表上定义一个唯一键即可。由于似乎没有在该表上定义主键,因此这样使用主键是有意义的:

CREATE TABLE CART (
    USERID INT NOT NULL, 
    LISTINGID INT NOT NULL,
    PRIMARY KEY (USERID, LISTINGID),
    FOREIGN KEY(USERID) REFERENCES USERS(ID),
    FOREIGN KEY(LISTINGID) REFERENCES LISTING(ID)
);

这会胁迫对数据进行适当的完整性检查,而且可能不需要存储程序。如果尝试执行违规的insert,数据库会直接引发相关的错误,然后可以在应用程序中行程。

insert into USERS   (ID) values(1), (2);
insert into LISTING (ID) values(1), (2);

insert into CART (USERID, LISTINGID) values (1, 1);
insert into CART (USERID, LISTINGID) values (1, 2);
insert into CART (USERID, LISTINGID) values (2, 1);
-- ok

insert into CART (USERID, LISTINGID) values (1, 1); 
-- ERROR: Duplicate entry '1-1' for key 'CART.PRIMARY'

相关问题