如何组织其他表/表来存储Order History
?
现在我的数据库结构非常简单,请参阅下面的代码:
CREATE TABLE category_table (
id SERIAL PRIMARY KEY NOT NULL,
name CHARACTER(250) NOT NULL
);
CREATE TABLE order_table (
id SERIAL PRIMARY KEY NOT NULL,
total_price DECIMAL(12, 2),
date TIMESTAMP WITH TIME ZONE DEFAULT now(),
product_amount INT
);
CREATE TABLE product_table (
id SERIAL PRIMARY KEY NOT NULL,
name CHARACTER VARYING(250) NOT NULL,
price DECIMAL(12, 2),
category_id INT,
CONSTRAINT category_fk FOREIGN KEY (category_id) REFERENCES category_table (id)
);
CREATE TABLE product_order_table (
product_id INT,
order_id INT,
CONSTRAINT product_fk FOREIGN KEY (product_id) REFERENCES product_table (id),
CONSTRAINT order_fk FOREIGN KEY (order_id) REFERENCES order_table (id)
);
我需要为Order History
组织关于这两个限制的表/表:
我需要DB设计方面的建议。
答案 0 :(得分:0)
使用另一张表" order_table_history"来跟踪历史记录是安全的。
为此表创建触发器功能" order_table"并且在插入/更新/删除等任何操作上,触发器在历史表中插入一条记录" order_table_history"。
您还可以在历史记录表中添加更多列,例如" user_id / user_name"或" operation_status =删除/更新"。
CREATE TABLE order_table_history (
id SERIAL PRIMARY KEY NOT NULL,
order_id INT,
total_price DECIMAL(12, 2),
date TIMESTAMP WITH TIME ZONE DEFAULT now(),
product_amount INT
);