1.9.7 การปรับการออกแบบให้ดียิ่งขึ้น
เมื่อมีตาราง เขตข้อมูล และความสัมพันธ์ตามที่ต้องการแล้ว ควรสร้างตารางและใส่ ข้อมูลตัวอย่างแล้วลองทำงานกับข้อมูล เช่น สร้างแบบสอบถาม เพิ่มระเบียนใหม่ และอื่น ๆ การทำ เช่นนี้จะช่วยให้เห็นปัญหาที่อาจเกิดได้ชัดเจน ตัวอย่างเช่น อาจต้องการเพิ่มคอลัมน์ที่ลืมแทรกใน ระหว่างขั้นตอนออกแบบ หรืออาจมีตารางที่ควรจะแยกเป็นสองตารางเพื่อไม่ให้ซ้ำกัน
ให้ดูว่าสามารถใช้ฐานข้อมูลดึงคำตอบที่ต้องการได้หรือไม่ ให้สร้างฟอร์มและ
รายงานอย่างคร่าว ๆ ขึ้น แล้วดูว่าฟอร์มและรายงานเหล่านี้แสดงข้อมูลที่คุณคาดไว้หรือไม่ ดูว่ามี
ข้อมูลที่ซ้ำกันโดยไม่จำเป็นหรือไม่ เมื่อพบว่ามี ให้แก้ไขการออกแบบเพื่อกำจัดข้อมูลเหล่านี้
ขณะที่ลองใช้ฐานข้อมูลในขั้นเริ่มต้น อาจพบสิ่งที่ต้องปรับปรุง สิ่งที่ควรตรวจสอบไม่กี่อย่างมี ดังนี้
1.
ลืมคอลัมน์ใดหรือไม ถ้าลืม ่ ข้อมูลนั้นเป็นของตารางที่มีอยู่แล้วหรือไม่ ถ้าเป็น
ข้อมูลเกี่ยวกับสิ่งอื่น อาจต้องสร้างตารางอีกตาราง ให้สร้างคอลัมน์สำหรับข้อมูลทุกอย่างที่คุณ
ต้องการติดตาม ถ้าข้อมูลนั้นไม่สามารถคำนวณได้จากคอลัมน์อื่น ก็เป็นไปได้อย่างยิ่งที่ต้องสร้าง
เป็นคอลัมน์ใหม่
2.
มีคอลัมน์ที่ไม่จำเป็นเนื่องจากสามารถคำนวณจากเขตข้อมูลที่มีอยู่แล้วหรือไม่
ถ้ารายการข้อมูลนั้นสามารถคำนวณได้จากคอลัมน์ที่มีอยู่ ตัวอย่างเช่น ราคาที่ลดซึ่งคำนวณจาก
ราคาขายปลีก การทำแบบนั้นมักจะดีกว่าและเลี่ยงการสร้างคอลัมน์ใหม่
3.
ใส่ข้อมูลเดียวกันซ้ำกันหลาย ๆ ครั้งลงในตารางหรือไม่ ถ้าเป็นเช่นนี้ อาจ
จำเป็นต้องแบ่งตารางออกเป็นสองตารางที่มีความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม
4.
มีตารางซึ่งมีเขตข้อมูลจำนวนมาก มีจำนวนระเบียนที่จำกัด และมีเขตข้อมูลว่าง
จำนวนมากในแต่ละระเบียนหรือไม่ ถ้ามี ลองนึกถึงการออกแบบตารางใหม่เพื่อให้มีเขตข้อมูล
น้อยลงและมีระเบียนมากขึ้น
5.
รายการข้อมูลแต่ละรายการแตกออกเป็นส่วนเล็กที่สุดซึ่งมีประโยชน์หรือไม่
ถ้าต้องการทำรายงาน เรียงลำดับ ค้นหา หรือคำนวณข้อมูลรายการหนึ่ง ให้ใส่ข้อมูลนั้นในคอลัมน์
ของตัวเอง
6.
แต่ละคอลัมน์มีข้อมูลเกี่ยวกับหัวเรื่องของตารางหรือไม่ ถ้าคอลัมน์ไม่มีข้อมูล
เกี่ยวกับหัวเรื่องของตาราง แสดงว่าหัวเรื่องดังกล่าวอยู่ในตารางอื่น
7.
ความสัมพันธ์ทั้งหมดระหว่างตารางถูกแสดงให้เห็นผ่านเขตข้อมูลที่ใช้ร่วมกัน
หรือตารางที่สามหรือไม่ ความสัมพันธ์แบบหนึ่ง-ต่อ-หนึ่งและแบบหนึ่ง-ต่อ-กลุ่มจะต้องมีคอลัมน์
ร่วมกัน ความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่มต้องการตารางที่สาม
การปรับปรุงตาราง
สมมติว่าผลิตภัณฑ์แต่ละชนิดในฐานข้อมูลการขายผลิตภัณฑ์อยู่ในประเภททั่วไป
เช่น เครื่องดื่ม เครื่องเทศ หรืออาหารทะเล ตารางผลิตภัณฑ์ควรจะมีเขตข้อมูลที่แสดงประเภทของ
ผลิตภัณฑ์แต่ละชนิดด้วย
สมมติว่าหลังจากที่ตรวจสอบและปรับปรุงการออกแบบฐานข้อมูลแล้ว ตัดสินใจ
เก็บคำอธิบายประเภทผลิตภัณฑ์พร้อมกับชื่อ ถ้าจะเพิ่มเขตข้อมูล 'คำอธิบายประเภท' ลงในตาราง
ผลิตภัณฑ์ คุณต้องอธิบายซ้ำแต่ละประเภทสำหรับแต่ละผลิตภัณฑ์ที่อยู่ในประเภทเดียวกัน ซึ่ง
ไม่ใช่วิธีแก้ปัญหาที่ดีนัก
ทางแก้ปัญหาที่ดีกว่าคือให้ “ประเภท” เป็นหัวเรื่องใหม่ในฐานข้อมูลที่จะติดตาม
โดยมีตารางและคีย์หลักเป็นของตัวเอง จากนั้นจะสามารถเพิ่มคีย์หลักจากตารางประเภทให้เป็น
Foreign Key ในตารางผลิตภัณฑ์ได้
ตารางประเภทและตารางผลิตภัณฑ์มีความสัมพันธ์แบบหนึ่ง-ต่อ-กลุ่ม นั่นคือ
ประเภทหนึ่งอาจมีผลิตภัณฑ์มากกว่าหนึ่งอย่าง แต่ผลิตภัณฑ์หนึ่งจะอยู่ในประเภทเดียวเท่านั้น
เมื่อได้ตรวจทานโครงสร้างตาราง ให้มองหากลุ่มที่ซ้ำกัน ตัวอย่างเช่น พิจารณา
ตารางซึ่งมีคอลัมน์ต่อไปนี้
ชื่อ
หมายเลขผลิตภัณฑ์1
ชื่อ1
หมายเลขผลิตภัณฑ์2
ชื่อ2
หมายเลขผลิตภัณฑ์3
ชื่อ3
ในที่นี้ ผลิตภัณฑ์แต่ละรายการเป็นกลุ่มของคอลัมน์ที่เกิดขึ้นซ้ำกันซึ่งแต่ละคอลัมน
แตกต่างจากคอลัมน์อื่นโดยมีการเพิ่มตัวเลขลงที่ส่วนท้ายของชื่อคอลัมน์ เมื่อเห็นว่ามีการใส่ตัวเลข
ลงในคอลัมน์ด้วยวิธีนี้ ควรจะคิดแก้ไขการออกแบบของคุณเสียใหม่
การออกแบบดังกล่าวมีข้อผิดพลาดหลายแห่ง ประการแรก จะต้องระบุจำนวน
ผลิตภัณฑ์ที่มีได้มากสุด ทันทีที่มีผลิตภัณฑ์เกินจำนวนที่จำกัดไว้ ต้องเพิ่มกลุ่มของคอลัมน์ใหม่ลง
ในโครงสร้างตาราง ซึ่งเป็นงานหลักของผู้ดูแลระบบ
อีกปัญหาหนึ่งคือผู้จำหน่ายสินค้าที่มีจำนวนผลิตภัณฑ์น้อยกว่าจำนวนสูงสุดจะทำ
ให้เปลืองพื้นที่ เนื่องจากคอลัมน์เพิ่มเติมจะเป็นคอลัมน์ว่าง ข้อผิดพลาดร้ายแรงที่สุดของการ
ออกแบบนี้คือจะทำงานหลายอย่างได้ยาก เช่น การเรียงลำดับหรือการทำดัชนีของตารางตาม
หมายเลขผลิตภัณฑ์หรือชื่อผลิตภัณฑ์
เมื่อใดก็ตามที่เห็นกลุ่มซ้ำ ให้ตรวจทานการออกแบบอย่างละเอียดโดยเน้นที่การแบ่ง
ตารางออกเป็นสองตาราง ในตัวอย่างข้างต้น จะเป็นการดีกว่าถ้าใช้สองตาราง ตารางหนึ่งสำหรับผู้
จำหน่ายและอีกตารางสำหรับผลิตภัณฑ์ แล้วเชื่อมโยงกันด้วย ID ผู้จำหน่าย
0 ความคิดเห็น:
แสดงความคิดเห็น