如何在数据库中添加会话购物车表,并给所有订购的项目一个唯一的订单
本文关键字:项目 唯一 一个 添加 数据库 会话 购物车 | 更新日期: 2023-09-27 18:03:11
ProductName price brand Quantity Net AmountNet Amount Update
我有上面的表,我必须在其中插入用户添加到购物车中的产品。用户可以向购物车中添加多个产品。我在会话中有用户添加的产品表,我将该会话表作为数据表逐行读取它。我必须在上面的表中逐行插入所有的产品。
我也有另一个表如下:
orderID CartItemID RegistrationID OrderDate NetAmount Remarks Created
我的问题是,如何给用户订购的所有产品一个唯一的订单id ?
在我的项目中,我使用3个表来解决这个问题
CREATE TABLE cart(
ID NUMBER,
CUSTOMER_ID NUMBER,
DATE DATE DEFAULT SYSDATE,
SESSION_ID VARCHAR2(32 BYTE)
)
CREATE TABLE cart_parameter(
SESSION_ID VARCHAR2(32 BYTE),
CODE VARCHAR2(32 BYTE),
TYPE VARCHAR2(32 BYTE),
AMOUNT NUMBER
)
CREATE TABLE product(
ID NUMBER,
CODE VARCHAR2(32 BYTE),
description VARCHAR2(200 BYTE),
price NUMBER(30,2),
... more info
)
Other tables
这个架构是正确的,因此篮子可以是不同数量的项目,并且在不同的表中。例如,你有一张桌子,上面放着电脑、智能手机、书籍等等。您可以选择放置产品ID,但不同的表可以是具有相同标识符的不同产品。那么你在扩展应用程序方面就有问题了
此函数返回此会话的唯一值
FUNCTION getSessionID
IS
BEGIN
RETURN utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(TO_CHAR(customer_id) || TO_CHAR(systimestamp, 'DDMONYYYYHH24MISSFF') || s_user_ip || dbms_random.random()));
END;
使用此sessionID连接购物车表和cart_parameter表
p/S:请原谅我的英文,这都是谷歌翻译