เอสซีดีประเภทที่ 6
เอสซีดีประเภททที่ 6 มีชื่อเรียกอีกอย่างว่า “เพิ่มคอลัมน์ประเภทที่หนึ่งลงในไดเมนชันประเภทที่สอง” ประเภทที่กล่าวถึงก็คือประเภทของเอสซีดี หลักการคือ นำเอสซีดีประเภทที่ 2 มาเพิ่มคอลัมน์ที่เป็นปัจจุบันของแต่ละคอลัมน์ข้อมูล ผลที่ออกมาจึงมีลักษณะที่เหมือนเอสซีดีประเภทที่ 3 ด้วย คอลัมน์ที่เพิ่มขึ้นมาจะถูกแก้ทุกครั้งที่มีการเปลี่ยนแปลง จึงมีลักษณะเหมือนเอสซีดีประเภทที่ 1 ด้วยเช่นกัน ด้วยเหตุนี้จึงมีการพูดเล่นกันว่า เอสซีดีประเภทที่ 6 คือ เอสซีดี 1+2+3
ตัวอย่าง
ข้อมูลก่อนการเปลี่ยนแปลง
ถ้าให้ข้อมูลดั้งเดิมเป็นดังข้อมูลข้างล่าง ให้เลขข้อมูลลูกค้า และ รหัสลูกค้า ในเทเบิ้ลลูกค้าเป็นเซอโรเกตคีย์และเนเชอรัลคีย์ตามลำดับ และให้เทเบิ้ลลูกค้าใช้หลักเอสซีดีประเภทที่ 6
จากข้อมูลก่อน2 จะพบว่ามีลักษณะเหมือนเอสซีดีประเภทที่ 2 และ 3 เหมือนเอสซีดีประเภทที่ 2 ในจุดที่มีคอลัมน์พิเศษที่บอกว่าแถวนั้นเริ่มและเลิกใช้งานวันใด และ แถวนั้นเป็นแถวที่เป็นข้อมูลปัจจุบันของลูกค้าคนนั้นหรือไม่ เหมือนเอซีดีประเภทที่ 3 ในจุดที่มีคอลัมน์ข้อมูลประจำแถวและคอลัมน์ข้อมูลปัจจุบันซึ่งในที่นี้คือคอลัมน์ ชื่อลูกค้า ชื่อลูกค้า และ จังหวัด จังหวัดปัจจุบัน
| ข้อมูลการขาย (ข้อมูลก่อน1) | ||||
|---|---|---|---|---|
| รหัสการขาย | วันเวลาซื้อขาย | เลขข้อมูลลูกค้า | เลขข้อมูลสินค้า | จำนวนสินค้าที่ซื้อ |
| O001 | 20220701 | 1 | 1 | 2 |
| O002 | 20220702 | 2 | 2 | 5 |
| O003 | 20220703 | 1 | 2 | 3 |
| ลูกค้า (ข้อมูลก่อน2) | ||||||||
|---|---|---|---|---|---|---|---|---|
| เลขข้อมูลลูกค้า SK | รหัสลูกค้า NK | ชื่อลูกค้า | ชื่อลูกค้าปัจจุบัน | จังหวัด | จังหวัดปัจจุบัน | เริ่มใช้งาน | หยุดใช้งาน | ปัจจุบันหรือไม่ |
| 1 | C001 | ทองดี แน่นะ | ทองดี แน่นะ | กรุงเทพ | กรุงเทพ | 20220101 | ใช่ | |
| 2 | C002 | เงินทอง ของจริง | เงินทอง ของจริง | กรุงเทพ | กรุงเทพ | 20220101 | ใช่ | |
รายงานของข้อมูลก่อนการเปลี่ยนแปลง
สมมติว่าต้องออกรายงานสองรายงาน ได้แก่ ยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า และยอดรวมจำนวนสินค้าต่อชื่อลูกค้า ได้รายงานดังด้านล่าง
| รายงานยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า (รายงานก่อน1) | |
|---|---|
| จังหวัดลูกค้า | ยอดรวมจำนวนสินค้า |
| กรุงเทพ | 10 |
| รายงานยอดรวมจำนวนสินค้าต่อชื่อลูกค้า (รายงานก่อน2) | |
|---|---|
| ชื่อลูกค้า | ยอดรวมจำนวนสินค้า |
| ทองดี แน่นะ | 5 |
| เงินทอง ของจริง | 5 |
ข้อมูลหลังการเปลี่ยนแปลง
วันที่ 1 มกราคม 2023 นายทองดี แน่นะ ย้ายจังหวัดจากกรุงเทพไปเชียงรายและได้เปลี่ยนชื่อจากทองดี แน่นะ เป็นทองดี แน่นอน ผลที่ได้จะเป็นดังข้างล่าง
เมื่อทองดีมีการเปลี่ยนแปลง แถวใหม่จะเกิดขึ้นมาเหมือนเอสซีดีประเภทที่ 2 โดยแถวใหม่จะมีข้อมูลใหม่พร้อมคอลัมน์ที่ระบุว่าแถวใหม่เป็นแถวปัจจุบัน ส่วนแถวเก่าจะมีการเขียนทับชื่อลูกค้าปัจจุบันและจังหวัดปัจจุบันให้เป็นข้อมูลใหม่เหมือนเอสซีดีประเภทที่ 1พร้อมระบุว่าแถวเก่านั้นไม่ใช่แถวปัจจุบันของลูกค้าคนนั้นอีกแล้ว ด้วยวิธีการเหมือนเอสซีดีประเภทที่ 3 ทำให้การออกรายงานสามารถทำได้หลายรูปแบบ แม้ว่าข้อมูลหลัง1 จะอ้างอิงข้อมูลลูกค้าเก่า แต่ผู้ออกรายงานสามารถเลือกได้ว่าจะใช้ข้อมูลปัจจุบันหรือข้อมูลอดีต โดยไม่ต้องหาข้อมูลปัจจุบันจากข้อมูลแถวอื่นเลย
| ข้อมูลการขาย (ข้อมูลหลัง1) | ||||
|---|---|---|---|---|
| รหัสการขาย | วันเวลาซื้อขาย | เลขข้อมูลลูกค้า | เลขข้อมูลสินค้า | จำนวนสินค้าที่ซื้อ |
| O001 | 20220701 | 1 | 1 | 2 |
| O002 | 20220702 | 2 | 2 | 5 |
| O003 | 20220703 | 1 | 2 | 3 |
| ลูกค้า (ข้อมูลหลัง2) | ||||||||
|---|---|---|---|---|---|---|---|---|
| เลขข้อมูลลูกค้า SK | รหัสลูกค้า NK | ชื่อลูกค้า | ชื่อลูกค้าปัจจุบัน | จังหวัด | จังหวัดปัจจุบัน | เริ่มใช้งาน | หยุดใช้งาน | ปัจจุบันหรือไม่ |
| 1 | C001 | ทองดี แน่นะ | ทองดี แน่นอน | กรุงเทพ | เชียงราย | 20220101 | 20230101 | ไม่ |
| 2 | C002 | เงินทอง ของจริง | เงินทอง ของจริง | กรุงเทพ | กรุงเทพ | 20220101 | ใช่ | |
| 3 | C001 | ทองดี แน่นอน | ทองดี แน่นอน | เชียงราย | เชียงราย | 20230101 | ใช่ | |
รายงานของข้อมูลหลังการเปลี่ยนแปลง
สมมติว่าต้องออกรายงานสองรายงาน ได้แก่ ยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า และยอดรวมจำนวนสินค้าต่อชื่อลูกค้า การทำรายงานจะมีความเป็นไปได้สามอย่าง
ใช้ข้อมูลปัจจุบัน
หากใช้ข้อมูลปัจจุบันรายงานจะได้ดังข้างล่าง รายงานหลัง1 ยอดจะเปลี่ยนจากรายงานก่อน1 ซึ่งไม่ควรเป็นเช่นนั้น เพราะการเปลี่ยนแปลงที่เกิดขึ้นคือลูกค้า ไม่ใช่การซื้อขาย ยอดไม่ควรเปลี่ยนแปลง
| รายงานยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า (รายงานหลัง1) | |
|---|---|
| จังหวัดลูกค้า | ยอดรวมจำนวนสินค้า |
| กรุงเทพ | 5 |
| เชียงราย | 5 |
| รายงานยอดรวมจำนวนสินค้าต่อชื่อลูกค้า (รายงานหลัง2) | |
|---|---|
| ชื่อลูกค้า | ยอดรวมจำนวนสินค้า |
| ทองดี แน่นอน | 5 |
| เงินทอง ของจริง | 5 |
ใช้ข้อมูลอดีต
หากใช้ข้อมูลอดีตจะรายงานจะได้ดังข้างล่าง รายงานหลัง1 และรายงานหลัง2 จะเหมือนรายงานก่อน1และรายงานก่อน2 ซึ่งเป็นเรื่องดีเพราะการซื้อขายไม่ได้มีการเปลี่ยนแปลง
| รายงานยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า (รายงานหลัง1) | |
|---|---|
| จังหวัดลูกค้า | ยอดรวมจำนวนสินค้า |
| กรุงเทพ | 10 |
| รายงานยอดรวมจำนวนสินค้าต่อชื่อลูกค้า (รายงานหลัง2) | |
|---|---|
| ชื่อลูกค้า | ยอดรวมจำนวนสินค้า |
| ทองดี แน่นะ | 5 |
| เงินทอง ของจริง | 5 |
การซื้อขายหลังการเปลี่ยนแปลง
วันที่ 5 มกราคม 2023 นายทองดี ได้เข้าไปซื้อของ ผลที่ได้จะเป็นไปดังข้อมูลด้านล่าง
| ข้อมูลการขาย (ข้อมูลหลังซื้อขาย1) | ||||
|---|---|---|---|---|
| รหัสการขาย | วันเวลาซื้อขาย | เลขข้อมูลลูกค้า | เลขข้อมูลสินค้า | จำนวนสินค้าที่ซื้อ |
| O001 | 20220701 | 1 | 1 | 2 |
| O002 | 20220702 | 2 | 2 | 5 |
| O003 | 20220703 | 1 | 2 | 3 |
| O004 | 20230105 | 3 | 1 | 2 |
| ลูกค้า (ข้อมูลหลังซื้อขาย2) | ||||||||
|---|---|---|---|---|---|---|---|---|
| เลขข้อมูลลูกค้า SK | รหัสลูกค้า NK | ชื่อลูกค้า | ชื่อลูกค้าปัจจุบัน | จังหวัด | จังหวัดปัจจุบัน | เริ่มใช้งาน | หยุดใช้งาน | ปัจจุบันหรือไม่ |
| 1 | C001 | ทองดี แน่นะ | ทองดี แน่นอน | กรุงเทพ | เชียงราย | 20220101 | 20230101 | ไม่ |
| 2 | C002 | เงินทอง ของจริง | เงินทอง ของจริง | กรุงเทพ | กรุงเทพ | 20220101 | ใช่ | |
| 3 | C001 | ทองดี แน่นอน | ทองดี แน่นอน | เชียงราย | เชียงราย | 20230101 | ใช่ | |
รายงานของข้อมูลหลังการซื้อขาย
สมมติว่าต้องออกรายงานสองรายงาน ได้แก่ ยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า และยอดรวมจำนวนสินค้าต่อชื่อลูกค้า การทำรายงานจะมีความเป็นไปได้สองอย่าง
ใช้ข้อมูลปัจจุบัน
หากใช้ข้อมูลปัจจุบันรายงานจะได้ดังข้างล่าง รายงานหลังซื้อขาย1 จะส่งผลความผิดพลาดต่อเนื่องจากรายงานก่อน
| รายงานยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า (รายงานหลังซื้อขาย1) | |
|---|---|
| จังหวัดลูกค้า | ยอดรวมจำนวนสินค้า |
| กรุงเทพ | 5 |
| เชียงราย | 7 |
| รายงานยอดรวมจำนวนสินค้าต่อชื่อลูกค้า (รายงานหลังซื้อขาย2) | |
|---|---|
| ชื่อลูกค้า | ยอดรวมจำนวนสินค้า |
| ทองดี แน่นอน | 7 |
| เงินทอง ของจริง | 5 |
ใช้ข้อมูลอดีต
หากใช้ข้อมูลอดีต ในรายงานหลังซื้อขาย2 ผู้ใช้งานอาจมีการเข้าใจผิดว่า ทองดีแน่นะ และ ทองดีแน่อนเป็นคนละคน ทั้งที่ความจริงทั้งสองเป็นคนเดียวกัน
| รายงานยอดรวมจำนวนสินค้าต่อจังหวัดของลูกค้า (รายงานหลังซื้อขาย1) | |
|---|---|
| จังหวัดลูกค้า | ยอดรวมจำนวนสินค้า |
| กรุงเทพ | 10 |
| เชียงราย | 2 |
| รายงานยอดรวมจำนวนสินค้าต่อชื่อลูกค้า (รายงานหลังซื้อขาย2) | |
|---|---|
| ชื่อลูกค้า | ยอดรวมจำนวนสินค้า |
| ทองดี แน่นะ | 5 |
| เงินทอง ของจริง | 5 |
| ทองดี แน่นอน | 2 |
ความเห็นผู้เขียนในการออกรายงาน
จากตัวอย่างรายงานหลายตัว สังเกตได้ว่าการสร้างรายงานโดยใช้ “ใช้ข้อมูลปัจจุบัน” หรือ “ใช้ข้อมูลอดีต” ต่างก็มีจุดอ่อนด้วยกันทั้งคู่ ทางที่ดีที่สุดคือ ดูจากรูปแบบของรายงาน แล้วเลือกวิธีที่ดีสุด เช่น รายงานหลังซื้อขาย1 เหมาะจะใช้วิธี “ใช้ข้อมูลอดีต” ในขณะที่ รายงานหลังซื้อขาย2 เหมาะจะใช้วิธี “ใช้ข้อมูลปัจจุบัน”
ข้อดี
1. รูปแบบของรายงาน จะใช้ข้อมูลปัจจุบันหรือข้อมูลอดีตในการออกรายงานก็ได้ ตามความเหมาะสมของรายงาน
2. ผู้ใช้สามารถตามการเปลี่ยนแปลงของไดเมนชันย้อนหลังไปยังจุดแรกเริ่มได้
3. ไม่จำกัดจำนวนครั้งการปลี่ยนแปลง
4. การออกรายงานไม่ยุ่งยาก
ข้อเสีย
1. ข้อมูลมีขนาดใหญ่และมีความซ้ำซ้อนสูง
2. การเปลี่ยนแปลงทำให้ต้องมีการแก้ไขข้อมูลปัจจุบันในทุกแถว เสียเวลาและโปรเซส (Process)ในการทำงาน
เหมาะกับไดเมนชันแบบใด
จาการสังเกตของผู้เขียน เหมาะสำหรับทุกไดเมนชัน ถ้าไม่ติดเรื่องความใหญ่และความซ้ำซ้อน น่าจะเป็นเอสซีดีที่ใช้ในการออกรายงานง่ายที่สุด
