在我的项目中,我使用 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 连接购物车表和购物车参数表
P/S:原谅我的英文,都是谷歌翻译的