0
ProductName     price   brand   Quantity    Net   AmountNet   Amount    Update

我有上表,我必须在其中插入用户添加到购物车的产品。用户可以将多个产品添加到他们的购物车。我在会话中有用户添加产品的表,我通过将该会话表作为数据表逐行读取它。我必须在上表中逐行插入所有产品。

我还有另一个表如下:

orderID    CartItemID   RegistrationID   OrderDate   NetAmount  Remarks   Created

我的问题是,如何为用户订购的所有产品提供一个唯一的订单 ID?

4

1 回答 1

0

在我的项目中,我使用 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:原谅我的英文,都是谷歌翻译的

于 2013-03-11T07:28:31.210 回答