ค้นหาบล็อกนี้

การออกแบบฐานข้อมูล Microsoft Access


การออกแบบฐานข้อมูล
ถือว่ามีความสำคัญเป็นอันดับแรกๆ ของการเขียนโปรแกรม Microsoft Access ก็ว่าได้ เพราะถ้าเราออกแบบฐานข้อมูลไว้ดี เราก็ไม่ต้องปวดหัวมาตามแก้ข้อมูล ในภายหลัง ขอยกตัวอย่างสักตัวอย่าง ว่าทำไมเราถึงต้องออกแบบฐานข้อมูลก่อนทำการเขียนโปรแกรม

สมมติว่าเราจะเขียนโปรแกรมเกี่ยวกับการขายส่งเครื่องรับโทรทัศน์ (LCD TV) และ กล้องดิจิตอล (Digital Camera) เราจะต้องสำรวจว่าจะเก็บข้อมูลอะไรบ้าง เช่น เก็บชื่อและที่อยู่ลูกค้า และรายการสั่งสินค้า ราคาสินค้า หลังจากนั้นก็ต้องสร้างตารางขึ้นมาเพื่อรองรับการเก็บข้อมูลดังกล่าว ดังภาพที่ 1 ยิ่งมีข้อมูลที่ต้องเก็บมากรายละเอียดที่จะสร้างตารางเก็บข้อมูลก็จะมากตามไปด้วย แต่จงอย่าลืมว่าข้อมูลที่เราจะเก็บจะต้องคำนึงถึงความจำเป็นในการใช้งานของเราเป็นหลักด้วย

ภาพที่ 1 ตารางข้อมูลลูกค้าและรายการสั่งสินค้า

จากตารางในภาพที่ 1 จะเห็นได้ว่าในตารางข้อมูลนี้เราจะมีข้อมูลค่อนข้างครบ ทุกอย่าง แต่เมื่อวิเคราะห์แล้วจะเป็นการออกแบบตารางข้อมูลที่ไม่ดี คือ
- เมื่อลูกค้า 1 คนต้องการจะสั่งสินค้าหลายรายการ ทำให้เราต้องพิมพ์ชื่อลูกค้า ซ้ำๆ กัน ตามรายการสินค้าที่ลูกค้าสั่ง จะทำให้เสียเวลาและเกิดความซ้ำซ้อนของข้อมูล และล่าช้า โอกาศพิมพ์ข้อมูลผิดพลาดก็มีสูง เพราะฉะนั้นการออกแบบฐานข้อมูล (Database) ที่ดี ต้องไม่มีข้อผิดพลาดดังกล่าว

- เมื่อลูกค้ามีการเปลี่ยนแปลงชื่อ ที่อยู่ เบอร์โทรศัพท์ (Mobile phone) ทำให้เราต้องเสียเวลามานั่งเปลี่ยนหลายรายการ

และยังมีปัญหาอื่นๆ ตามมาอีกมากมาย เพราะฉะนั้น เราจะมาออกแบบฐานข้มูลกันใหม่ โดยเอาข้อมูลใน ภาพที่ 1 มาวิเคราะห์ แล้วทำการแยกตารางข้อมูลออกมาเป็นชุดๆ ข้อมูล ดังภาพที่ 2
ภาพที่ 2 ตารางที่ได้จากการออกแบบฐานข้อมูล


จากภาพที่ 2 เราจะแบ่งตารางออกเป็น 3 ตารางข้อมูล คือตารางข้อมูลที่เก็บข้อมูลของลูกค้า ตารางข้อมูลที่เก็บข้อมูลของสินค้า และตารางข้อมูลที่เก็บข้อมูลของรายการที่ลูกค้าสั่งสินค้าในแต่ละครั้ง ซึ่งรายละเอียดของแต่ละตารางจะอธิบายดังนี้

ตารางข้อมูลที่ 1 ชื่อว่า Customer คือตารางข้อมูลของลูกค้า ประกอบไปด้วย (ดูภาพที่ 3 ประกอบ)


ภาพที่ 3 ตารางข้อมูลลูกค้า (Customer)

คำอธิบายรายละเอียดของตาราง Customer
ID คือรหัสลูกค้า ที่ต้องมีรหัสลูกค้าก็เพราะว่า เวลาทีีลูกค้ามาสั่งสินค้า เราไม่ต้องไปกรอกข้อมูลของลูกค้าใหม่ทุกครั้ง เพียงแค่กรอก รหัสของลูกค้าก็พอ เพราะในฐานข้อมูลของเรามีข้อมูลของลูกค้าอยู่แล้ว ทำให้ไม่ต้องเสียเวลาไปพิมพ์ข้อมูลของลูกค้าใหม่ทุกครั้งที่ลูกค้ามาสั่งสินค้า และเมื่อลูกค้าสั่งสินค้าหลายรายการเราก็ไม่ต้องกรอกข้อมูลลูกค้าซ้ำอีก

Daterecord คือวันที่ลงทะเบียนลูกค้า เพื่อให้ร้านค้า (Shop) ทราบว่าเป็นลูกค้าเก่าลูกค้าใหม่ สั่งของกับทางร้านมานานแค่ใหน หรือเพื่อสิทธิประโยชน์อื่นๆ ก็ได้

Namecustomer คือ ชื่อ-นามสกุล ของลูกค้า

Address คือ ที่อยู่ของลูกค้า เช่น บ้านเลขที่ หรือหมูบ้าน อาคาร หรืออะไรก็ได้ที่สำใก้เราเข้าใจว่าลูกค้าอยู่ที่ใหน เพื่อความสะดวกในการส่งสินค้า หรือประโยชน์อื่นๆ

Road คือ ใส่ชื่อถนนที่ลูกค้าอาศัยอยู่

Tumbol คือ ชื่อตำบล

Amphurคือ ชื่ออำเภอ

Province คือ ชื่อจังหวัด

Tel คือ หมายเลขโทรศัพท์สำหรับติดต่อลูกค้า

ตารางข้อมูลที่ 2 ชื่อว่า NameProduct คือตารางข้อมูลของสินค้า ประกอบไปด้วย (ดูภาพที่ 4 ประกอบ)

ภาพที่ 4 ตารางข้อมูลสินค้า

คำอธิบายรายละเอียดของตาราง NameProduct
IDProduct คือ รหัสของสินค้าใช้แทนการพิมพ์ชื้อสินค้าซ้ำๆ และเวลาที่ลูกค้าสั่งสินค้าก็จะลงข้อมูลง่ายขึ้น เพราะเราได้ใส่ข้อมูลของสินค้าไว้ในตารางข้อมูลสินค้าเรียบร้อยแล้ว

NameProduct คือ ชื่อของสินค้า

Nicknameproduct คือ นามเรียกของสินค้า เช่น กล้องดิจิตอล (Digital Camera) จำนวน 1 ตัว LCD TV จำนวน 2 เครื่อง เป็นต้น

Price คือ ราคาของสินค้า เมื่อเรารับสินค้ามาเราจะมาป้อนข้อมูลรายการสินค้านั้นใว้ในตารางสินค้าเลย เพื่อเวลาที่ลูกค้ามาสั่ง Oder สินค้าเราก็เพียงแค่พิมพ์หรือเลือกรายการสินค้าที่เรามีในฐานข้อมูลแล้ว จะทำให้ประหยัดเวลาเกิดความรวดเร็วในการทำงานมากขึ้น

ตารางข้อมูลที่ 3 ชื่อว่า OrdreProduct คือตารางข้อมูลการสั่งซื้อสินค้าของลูกค้า ประกอบไปด้วย (ดูภาพที่ 5 ประกอบ)

ภาพที่ 5 ตารางรายการสั่งสินค้า

คำอธิบายรายละเอียดของตาราง OrderProduct
IDorder คือ รหัสรายการการสั่งซื้อสินค้าของลูกค้า ที่ต้องมีรหัสแทนรายการสั่งซื้อสินค้า เพราะว่า ในการสั่งสินค้าของลูกค้าแต่ละครั้งลูกค้าอาจจะสั่งสินค้าหลายรายการ หรือหลายอย่าง ถ้าเราไม่ใช้รหัสการสั่งซื้อ เราก็จะต้องพิมพ์รายการสินค้า หนึ่งรายการต่อการสั่งซื้อหนึ่งครั้ง ซึ่งจำทำให้สิ้นเปลืองทรัพยากรโดยใช่เหตุ

Dateorder คือ วันที่สั่งซื้อสินค้า บันทึกวันที่ใว้ด้วยเพื่อความสะดวกในการเช็คความถูกต้องต่างๆ ของรายการสั่งซื้อสินค้า

IDcustomer คือ รหัสลูกค้าที่สั่งซื้อสินค้า ในตารางนี้เราจะเก็บรหัสของลูกค้าแทนการพิมพ์ชื่อของลูกค้า ถ้าเราพิมพ์ซื่อลูกค้าทุกๆ ครั้งอาจทำให้ข้อมูลเกิดความซ้ำซ้อน ทำให้ฐานข้อมูลประมวลผลช้าลงไปด้วย เราจึงเก็บข้อมูลลูกค้าในรูปแบบของรหัสลูกค้าแทน

IDproduct คือ รหัสของสินค้าที่ลูกค้าสั่งซื้อ ในตารางนี้เราจะเก็ยรหัสของสินค้าแทนการพิมพ์ชื่อสินค้า

amount คือ จำนวนสินค้าที่ลูกค้าสั่งแต่ละรายการ

PriceOrder คือ ราคาของสินค้าที่ลูกค้าสั่งแต่ละรายการ

SendOrder คือ ใช้สำหรับเชคข้อมูลว่าสินค้าถูกส่งหรือยัง

DateReceiptOrder คือ เมื่อสินค้าถูกส่งถึงลูกค้าแล้ว ก็ให้มาลงวันที่ว่าลูกค้าได้รับของแล้ว



ไม่มีความคิดเห็น: