PlusMagi's Blog By Pitt Phunsanit Ai,Business,Database เส้นทางสายไหม: สินค้าจากฝั่งตะวันตกและเอเชียกลาง ม้าสายพันธุ์เหงื่อเลือด (Fergana horses), แก้ว, ขนสัตว์, ทองคำ, พรม, องุ่น, ทับทิม

เส้นทางสายไหม: สินค้าจากฝั่งตะวันตกและเอเชียกลาง ม้าสายพันธุ์เหงื่อเลือด (Fergana horses), แก้ว, ขนสัตว์, ทองคำ, พรม, องุ่น, ทับทิม

ในฐานะผู้เชี่ยวชาญด้านสถาปัตยกรรมระบบและ SEO บทความนี้จะนำเสนอการประยุกต์ใช้พลังของ PostgreSQL ในการจำลองการจัดการข้อมูลสินค้าล้ำค่าจากเส้นทางสายไหม (The Silk Road) ซึ่งเป็นเส้นทางการค้าโบราณที่เชื่อมต่อสินค้าหลากหลายชนิด ตั้งแต่ม้าสายพันธุ์เหงื่อเลือด (Fergana horses) ไปจนถึงทับทิม แก้ว และพรม การจัดการข้อมูลที่มีความหลากหลายทางประเภท (Heterogeneous Data) และปริมาณมากเช่นนี้ จำเป็นต้องใช้ระบบฐานข้อมูลที่มีความยืดหยุ่นและทรงพลังอย่าง PostgreSQL

การออกแบบ Schema สำหรับสินค้าแห่งเส้นทางสายไหม

การเริ่มต้นที่ดีคือการสร้างโครงสร้างข้อมูลที่สามารถรองรับสินค้าหลายประเภทและหลายแหล่งกำเนิด เราจะสร้างตาราง `goods` เพื่อเก็บรายละเอียดสินค้า และตาราง `trades` เพื่อบันทึกการซื้อขาย

SQL

-- สร้างตารางสินค้าหลัก (สินค้าจากแหล่งกำเนิดต่างๆ) 
CREATE TABLE goods (
    item_id SERIAL PRIMARY KEY,
    item_name VARCHAR(100) NOT NULL, -- เช่น Fergana horses, ruby, glass
    origin VARCHAR(50) NOT NULL, -- เช่น Central Asia, China, Persia
    value_usd NUMERIC
);

-- เพิ่มข้อมูลสินค้าเริ่มต้น
INSERT INTO goods (item_name, origin, value_usd) VALUES
('Fergana horses', 'Central Asia', 5000.00),
('Ruby', 'India', 1200.00),
('Persian Carpet', 'Persia', 800.00);

การจัดการข้อมูลการค้าด้วย PostgreSQL Functions

เมื่อเรามีข้อมูลสินค้าแล้ว ขั้นตอนต่อไปคือการจำลองการบันทึกการซื้อขายที่ซับซ้อน ซึ่งอาจมีสินค้าหลายชนิดในรายการเดียว เราสามารถใช้ฟังก์ชันของ PostgreSQL เช่น `jsonb` หรือ `unnest` เพื่อจัดการกับรายการสินค้าที่หลากหลาย

การบันทึกรายการสินค้าหลายชนิดในธุรกรรมเดียว

สมมติว่าเราต้องการบันทึกการแลกเปลี่ยนสินค้าหลายรายการ (ม้า, แก้ว, ทับทิม) ในธุรกรรมเดียว เราสามารถใช้ JSONB เพื่อเก็บรายการสินค้าที่ซับซ้อน:

SQL

-- สมมติว่ามีตาราง trades ที่มีคอลัมน์ goods_list เป็น JSONB
INSERT INTO trades (trade_id, goods_list) VALUES
(101, '{"items": [{"name": "Fergana horses", "qty": 2}, {"name": "Ruby", "qty": 5}, {"name": "Glass", "qty": 1}]}'::jsonb);

การค้นหาสินค้าตามเงื่อนไขซับซ้อน (Advanced Querying)

หากเราต้องการค้นหาว่าสินค้าใดที่มาจากแหล่งกำเนิด ‘Central Asia’ และมีมูลค่าสูงกว่า 1,000 USD เราใช้คำสั่ง `WHERE` ร่วมกับการเปรียบเทียบค่าตัวเลข:

SQL

SELECT 
    item_name, 
    origin, 
    value_usd
FROM 
    goods
WHERE 
    origin = 'Central Asia' AND value_usd > 1000.00;

บทสรุป: พลังของ PostgreSQL ในการจำลองประวัติศาสตร์

การจำลองการค้าขายบนเส้นทางสายไหมด้วย PostgreSQL ไม่เพียงแต่แสดงให้เห็นถึงความสามารถในการจัดการข้อมูลเชิงโครงสร้าง (Structured Data) เท่านั้น แต่ยังเน้นย้ำถึงความยืดหยุ่นในการรองรับข้อมูลที่หลากหลาย (เช่น การใช้ JSONB) ซึ่งเป็นทักษะสำคัญในการเป็น Senior Architect การใช้ PostgreSQL ทำให้เราสามารถสร้างระบบที่แข็งแกร่งและขยายขนาดได้ เพื่อรองรับการวิเคราะห์ข้อมูลทางประวัติศาสตร์และเชิงพาณิชย์ที่ซับซ้อนได้อย่างสมบูรณ์