ทำความเข้าใจเรื่อง Relationships และ Key
กระทู้เก่าบอร์ด อ.Yeadram

 3,723   2
URL.หัวข้อ / URL
ทำความเข้าใจเรื่อง Relationships และ Key

รบกวนสอบถามอาจารย์ yeadram ด้วยนะคะ
หนูยังไม่เข้าใจเรื่องนี้คะ อ่านหนังสือยังงงอยู่
1) Relationships
     (สร้างความสัมพันธ์ของตาราง)
     ทราบว่ามีอยู่หลยาอย่าง เช่น 1:2,2:2 อะไรประมาณนี้คะ
    ก็งงอยู่ดี เคยลองทำแล้ว ได้บ้าง ไม่ได้บ้างคะ
    
2) Key
    เหมือนกันคะ ก็ยังงงๆอยู่ ตกลงมันมีกี่แบบ กี่ประเภทกันแน่
   มีKeyหลัก มีKeyรอง มีKeyร่วม มีKeyนอก
   แล้วก็ตัว Index มันต่างกับ Key อย่างไรคะอาจารย์
   สาธุขอให้ข้าพเจ้าบรรลุทีเถอะ สาธุ..........

2 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R09118
ขอตอบก็แล้วกัน อ.Yeadram คงยังไม่ว่าง ผิดถูกประการใด อ. ท่านอื่นช่วยเสริมก็แล้วกันครับ เพราะผมก็เรียนจากประสบการณ์

1.Relationships คือความสัมพันธ์ระหว่างตาราง ที่ใช้มากคือ 1 to many
คือตาราง แม่ มี INDEX (primary key) มีคุณสมบัติที่ไม่ซ้ำกันเลย
ไปสัมพันธ์กับตารางที่ 2 หรือตารางลูก ซึงในตารางลูก จะต้องมี เจ้า Primary key ตารางแม่ไปไส่ แต่ใส่แล้วสามารถซ้ำกันได้(many)
ยกตัวอย่างเช่น ลูกค้าสั่ง order ต้องมีตารางลูกค้า ซึ่งลูกค้ารายเดียวกันจะต้องมี Primary key อันเดียว แต่ไปสั่งสินค้า ได้หลายอย่าง ดังนั้น ตาราง order
ก็มี key ของลูกค้านี้ไปใส่ได้หลายครั้ง
ตารางที่ 1 การออกแบบ ตารางลูกค้า
ID
NAME
Credit
ฯลฯ

ตารางที่ 2 order
ID
ID_Customer
ID_สินค้าที่สั้ง
ฯลฯ

ตรง ID ตารางที่ 1 นั่นแหละครับ สัมพันธ์ กับ ID_Customer แบบ 1 to many
ส่วนการกำหนดความสัมพันธ์นั้น ก็เพื่อให้ข้อมูลมีความถูกต้อง เพราะถ้าไม่กำหนด สมมุติว่าคุณ Delete ตารางลูกค้าออก สัก 1 Record แต่มี ID_Customer ค้างอยู่ในตารางที่ 2 คำถามจะตามมาทันทีว่า อ้าวแล้ว Order นี้
ใครสั่ง(เพราะ ID ลูกค้าถูกลบแล้ว) ดังนั้นถ้าจะลบ ก็ต้องลบ ID_Customer ของลูกค้าคนนี้ จากตาราง ORDER จนหมดก่อน ถึงลบชื่อลูกค้าจากตารางที่ 1ได้ หรือคุณจะไม่กำหนดความสัมพันธ์เลยก็ได้ แต่จะต้องควบคุมขบวนการ UPDATE INSERT Delete ข้อมูลอย่างดี แต่นั่นไม่เหมาะสำหรับมือใหม่

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

ส่วนความสัมพันธ์แบบ 1:2,2:2 ไม่รู้เลยครับ และก็ไม่เคยอ่านเจอด้วย เจอแต่ 1:1 ซึงไม่ค่อยได้ใช้ เพราะ 1:1 ก็เหมือนกับตารางเดียวกันนั่นแหละครับ แทนที่จะเก็บแยกตาราง ทำไมไม่รวมเป็นตารางเดียวกันซะ

ข้อ 2 key หลักๆ ก็มี Primary key กับ Foreign Key ซึ่งก็หมายถึง
คือ   ID ตารางที่ 1 กับ ID_Customer เป็นตัวอย่างครับ 2 ตัวนีก็พอแล้วครับ ส่วน มีKeyรอง มีKeyร่วม อะไรน่ะ ผมก็ไม่เคยใช้ แต่คิดว่าเป็น Index ที่สร้างไว้ค้นหาข้อมูล เรียกว่า key รอง ส่วน key ร่วม น่าจะหมายถึง Index ที่สร้างไว้หาข้อมูลเช่นเดียวกัน แต่ว่ารวม 2 Fields เข้าด้วยกัน
2 @R09121
ขอขอบคุณสำหรับคำตอบนะค่ะ
ตอบยาวเลยคะ เกรงใจจัง
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2576s