簡體   English   中英

如何將一個表拆分為具有不同列的多個表(PostgreSQL)?

[英]How to split one table into multiple tables with different columns (PostgreSQL)?

我有一個包含 25 列的表,我想將其拆分為 3 或 4 個列數較少的表。 下面是一個簡化的例子作為參考:

這是大桌子

供應商 庫存單位 產品類 尺寸 銷售量 trans_id
供應商_1 品牌_1 sku_1 class_1 3.5 100 1
供應商_1 品牌_2 sku_2 class_1 3.5 200 2

我需要這樣的東西:

產品信息

庫存單位 產品類 尺寸 trans_id
sku_1 class_1 3.5 1
sku_2 class_1 3.5 2

產品銷售

供應商 銷售量 trans_id
供應商_1 品牌_1 100 1
供應商_1 品牌_2 200 2

在這種情況下,product_info 表中的 trans_id 將是我的主鍵。

您可以拆分表格,如產品、品牌、購物車。 然后使用外鍵連接它們。

Products表可以包含指向其公司的company_id列。

carts 表保存用戶的購買信息,並包含product_iduser_id等列。

最好有一個CartProducts表,其中一個貨件可能包含多個產品。

也許為此目的使用視圖(即邏輯表)。 輕巧高效。 這是一個插圖:

create or replace view product_info as
 select trans_id, sku, product_class, size 
 from the_big_table;

create or replace view product_sales as
 select trans_id, supplier, brand, sales 
 from the_big_table;

-- more view definitions here

加入這些視圖將是微不足道的,而且沒有開銷:

select ... 
 from product_info join product_sales using (trans_id);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM