我有一個包含 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 將是我的 PRIMARY KEY。
uj5u.com熱心網友回復:
您可以拆分產品、品牌、購物車等表格。然后使用外鍵連接它們。
產品表可以包含參考其公司的列company_id。
購物車表保存了用戶的購買資訊,并包含product_id和user_id等列。
最好有一個CartProducts表,其中一個貨件可能包含多個產品。
uj5u.com熱心網友回復:
也許為此目的使用視圖(即邏輯表)。輕巧高效。這是一個插圖:
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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/362604.html
標籤:sql PostgreSQL的
上一篇:如何選擇以X字母開頭的東西?
