0
ProductName     price   brand   Quantity    Net   AmountNet   Amount    Update

ユーザーがカートに追加した製品を挿入する必要がある上記のテーブルがあります。ユーザーは複数の商品をカートに追加できます。セッションにユーザーが追加した製品のテーブルがあり、そのセッションテーブルをデータテーブルとして行ごとに読んでいます。上の表にすべての製品を行ごとに挿入する必要があります。

次のような別のテーブルもあります。

orderID    CartItemID   RegistrationID   OrderDate   NetAmount  Remarks   Created

私の質問は、ユーザーが注文したすべての製品に 1 つの一意の注文 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 を入力しますが、異なるテーブルが同じ 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;


このセッション ID を使用して、cart テーブルと cart_parameter テーブルを接続します

P/S: 私の英語ですみません。すべて Google 翻訳です。

于 2013-03-11T07:28:31.210 に答える