ทำไมเราถึงแยก Fact กับ Dimension Tables ออกจากกัน ทั้งๆ ที่รวมไว้ที่ Fact Table ที่เดียวก็ได้?

คำตอบในโพสต์ที่ Stack Overflow เป็นคำตอบที่ดีมากๆ ถึงแม้ว่าโพสต์นี้จะเก่ามากแล้วแต่ก็ยังพอใช้อ้างอิงได้อยู่ (7 ปี+)

  1. เค้าบอกว่า fact เนี่ย มักจะมีจำนวนแถวมหาศาลเลย ถ้าเราเอาค่าใช้ dimension เข้ามาเก็บด้วยเนี่ย storage ก็จะบวมได้ ดังนั้นแล้วเราควรที่จะเก็บตัวเลขอย่างเช่น integer ไว้ดีกว่า จะเบากว่า และ performance ก็จะดีกว่าด้วย
  2. ปกติแล้วเราก็มักจะมี attributes อย่างอื่นด้วยที่ dimension table ดังนั้นก็แยก table ออกจาก fact ก็จะดีกว่า
  3. เวลาที่เราสร้าง report หรือออก dashboard แล้วทำส่วน filter ข้อมูล เราจะได้ไม่ต้องไปใช้ SELECT DISTINCT ซึ่งถ้าข้อมูลใหญ่มากๆ งานอาจจะเข้าได้ :joy:
2 Likes