Friday, December 7, 2012

มีเพื่อนสมาชิกสอบถามเข้ามาว่า ...

"ถ้าผมจะสร้างฐานข้อมูลลูกค้าที่มี2ส่วนคือ ประวัติลูกค้า และมีตารางโชว์แสดงออกมาว่าลูกค้าคนนี้มีประวัติการซื้อขายกับบริษัทของเราอะไรยังไงบ้าง กี่ออร์เดอร์แล้ว ควรทำอย่างไรบ้างครับ"

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

การสร้างฐานข้อมูลตามที่ต้องการนั้น จะต้องใช้งาน ฐานข้อมูล 2 ฐานมาเชื่อมกัน ฐานข้อมูลแรกจะเก็บข้อมูลของลูกค้าที่เป็นข้ิอมูลทั่วไป เช่น ชื่ออะไร อยู่ที่ไหน เป็นต้น ส่วนฐานข้อมูลที่ 2 นั้น ก็จะเก็บข้อมูลของการมาซื้อของลูกค้าคนนี้ไว้ เป็นประวัติไว้ตรวจสอบว่า ได้มาซื้อของที่ร้านกี่ครั้ง อะไรบ้าง เป็นจำนวนเงินเท่าไร ประมาณนี้นะครับ

เมื่อทราบแล้วว่า ต้องสร้างฐานข้อมูล 2 ฐาน ซึ่งผมจะไม่แยก file ในการสร้างนะครับ เพราะสามารถสร้างฐานข้อมูลทั้ง 2 ฐานได้ใน file เดียว ซึ่งแต่ละฐาน จะเรียกว่า table แทนนะครับ

1. ขั้นแรก ผมก็เปิด filemaker ตามปกติ ไม่ได้ทำพิศดารแต่อย่างใด จากนั้นก็ทำการสร้าง file ใหม่ ทำการ save ไว้บน desktop หรือที่ชอบๆ ของท่านนะครับ 555

สร้าง file ใหม่

จะเห็นได้ว่า ผมสร้าง table ชื่อ customer เอาไว้เก็บข้อมูลลูกค้า และ customer detail เอาไว้เก็บประวัติการซื้อของลูกค้าครับ จะตั้งชื่อเป็นภาษาไทยก็ได้ แต่ผมติดการตั้งชื่อแบบภาษาอังกฤษไปเสียแล้ว ติดแล้วเลิกยากครับ

สังเกตุนะครับ ตอนนี้ผมอยู่ที่ tab ของ table ถ้าสร้าง file ใหม่ ปกติมันจะไปที่ tab ของ field ก่อน ก็ไม่เป็นไร ให้ click ที่ tab ของ table เท่านั้นเอง

2. ต่อมา ก็ทำการสร้าง field ให้กับแต่ละ table ครับ เริ่มจาก table customer ก่อน ด้วยการ click 2 ที หรือ click ๆ ( double click ก็มี แต่ไม่ใช้ครับ 5 55) ที่ table customer เลย

customer table

อันนี้สำคัญ : ในกรณีที่ต้องมีการเชื่อม table ตั้งแต่ 2 table เข้าด้วยกัน ท่านจะต้องทำการระบุว่า จะใช้อะไรในการเชื่อมต่อ กรณีนี้ผมสร้าง รหัสของลูกค้า มีชื่อ field ว่า ID เป็นตัวเชื่อม นั่นก็คือ ทั้ง 2 table จะต้องมี field ID ที่ type เหมือนกัน ทั้ง 2 table นะครับ ย้ำ type หรือ ชนิดของข้อมูล ต้องเหมือนกัน ระวังตรงนี้นะครับ ส่วนใหญ่จะพลาด เพราะัตั้ง type ของ field ที่ใช้เชื่อม ไม่เหมือนกัน

ส่วน field ที่เหลือ ก็สัพเพเหระครับ ท่านจะใส่เพิ่มให้ครบตามที่ท่านต้องการก็ได้ ตัวอย่างนี้ ผมก็เอาแค่ ชื่อ ที่อยู่ และ เบอร์โทรของลูกค้า ก็พอครับ



3. สร้าง table ที่จะเก็บข้อมูลการมาซื้อของลูกค้า ก็กดกลับทีไป tab table แล้วก็ clickๆ ที่ table ชื่อ customer detail

customer detail

ชัดเจนนะครับ สำหรับ field ที่จะใช้เชื่อมกัน ผมทำสีทึบให้ดูแล้ว field ที่จะใช้เชื่อมนี้ มีชื่อเรียกเป็นทางการว่า key field นะครับ สำหรับ table นี้ ผมก็เก็บ วันที่ที่ลูกค้ามาซื้อ ซื้ออะไร จำนวนเท่าไร ราคาต่อชิ้นเท่าไร ส่วนผลรวมผมก็ใช้สูตรคำนวณ ให้เป็น จำนวน x ราคาต่อชิ้น  .... ไม่ งง นะครับ ? ง่ายๆ ไม่มีอะไรซับซ้อนครับผม

4. สร้างความสัมพันธ์ระหว่างตาราง ด้วย key field ที่กำหนด ซึ่งผมก็ได้บอกแล้วก่อนหน้านี้ว่า field ที่จะใช้คือ field ที่ชื่อ ID หรือรหัสลูกค้า ซึ่งจะต้องมีทั้ง 2 table

relation ship

วิธีการ ก็แค่ ลาก filed ชื่อ ID จาก table หนึ่ง ไปแต่อีก table หนึ่งเท่านั้นเอง แล้วระบบจะทำการสร้างเส้นเชื่อให้ดังรูปข้างบนครับ

5. มาดูรายละเอียดการเชื่อมความสัมพันธ์กันเล็กน้อย หลังจากทำการลากเ้ส้นเชื่อม ID มันก็จะมี window แสดงให้เห็นรายละเอียดของการเชื่อมต่อ

ความสัมพันธ์ระหว่างตาราง

จุดสังเกตุ : ให้ดูนะครับ ว่าตอนนี้ customer detail อยู่ด้านซ้าย customer เฉยๆ อยู่ด้านขวา ทำการเลือก check ถูก ที่ฝั่งของ customer detail เพื่อบอกว่า

- อันแรก Allow creation ....  ความหมายก็คือ ให้ทำการสร้าง record โดยอัตโนมัติ เมื่อมีการเพิ่มข้อมูลลงตารางประวัติการซื้อ (งง ไหมครับ อาจจะ งง แน่ แต่อ่านบทความนี้ต่อไป จะเข้าใจเอง ตอนนี้ ให้ งง ไปก่อน)

- Delete related ... หมายถึง หากทำการลบ ข้อมูลของลูกค้า คนใด คนหนึ่งใน table customer  ให้ทำการลบข้อมูลของการซื้อที่เกี่ยวข้องใน table customer detail ทั้งหมดด้วย (เก็บอาการ งง ไว้ต่อไป)

ให้ท่านเลียนแบบผมไปก่อนนะครับ ถ้าเข้าใจแล้ว ท่านจะ อ๋อ เอง

6.  เมื่อเชื่อม table เสร็จ ก็กด ok ok และ ok เพื่อไปที่หน้า layout นะครับ

หน้า  layout

สังเกตุ อีกแล้ว ตอนนี้ผมอยู่ที่ layout ของ customer นะครับ  กรณีของการสร้าง file นี้ เราจะไม่ไปยุ่งกับ layout ของ customer detail เลย เพราะการเพิ่มและลบข้อมูลการซื้อ สามารถกระัทำได้จาก layout customer ที่เดียวเลย

filemaker pro มีเครื่องมือที่ทำให้เราสามารถเอา table อื่น ที่มีความสัมพันธ์กัน มาแสดงใน layout เดียวกันได้ กรณีนี้ ผมจะดึงเอา table customer detail มาแปะในหน้า layout ของ customer ซึ่งเป็น layout ที่อยู่ใน table customer (งง ไหมครับ อ่านดี ดี ก็แล้วกัน) จะรู้ได้อย่างไร ว่าท่านอยู่ใน table ไหน ก็ให้ดูที่ แถบสีเทาทึบในรูปก็แล้วกันนะครับ มันจะบอกชื่อ layout และ table ที่กำลังทำงานอยู่

สำหรับเครื่องมือที่ว่า ก็คือ portal row ครับ ปรากฏอยู่บน แถบเครื่องมือ ให้ทำการ click เลือก จากนั้น ก็เอามา click ค้างไว้ใน layout ตรงจุดที่ต้องการ แล้วก็ลากกำหนดขนาดได้เลย เมื่อปล่อย mouse มันก็จะ pop up มาถามว่า จะกำหนดลักษณะแบบไหน  ผมก็ click เลือกเท่าที่เห็นในภาพแหละ ท่าจะลอง click เลือกทั้งหมด ก็ได้ จะได้รู้ว่ามันทำอะไร

7. กำหนดว่าจะแสดง field อะไรบ้างใน portal row

กำหนด field

ขั้นต่อมา ระบบจะถามว่า ท่าจะเอา field ไหนมาแสดงบ้าง ผมก็เลือกมาทั้งหมด ยกเว้น id เพราะไม่มีความจำเป็นต้องแสดง เนื่องจาก เราก็รู้แล้วว่า มันเอาไว้เชื่อมกันเท่านั้นเอง แต่ สำหรับท่านมือใหม่ ผมแนะนำให้มาแสดงด้วย เพราะมันจะทำให้ท่านเข้าใจได้ดีขึ้น ถึงการเชื่อมต่อ 2 table ครับ (เอามาดู ว่าค่าของ ID จะเป็นอะไร เมื่อเพิ่มข้อมูลในตาราง)

8.ขั้นต่อมา ก็ให้ทำการปรับหน้า layout ให้ดูสวยงาม ด้วยการ ลากไปมา ครับ ไม่มีอะไรมากมายไปกว่าเรื่องความสวยงามเลย สำหรับขั้นตอนนี้ แต่มันเป็นเรื่องที่จะต้องคิดให้ เพราะท่าจะต้องเจอกับหน้าที่ท่านกำัลังออกแบบนี้ตอนใช่งานจริงนะครับ ดังนั้น ทำให้ดี สวย แล้วเข้าใจง่าย ไว้ก่อน เป็นดีที่สุด

ปรับ layout

9. จากนั้น ก็ไปที่ mode browse เพื่อดูว่า หน้าตาการทำงานเป็นเช่นไร

การทำงาน

ผมลองทำการ new record แล้ว ก็ใส่ข้อมูลเข้าไป โดยเฉพาะข้อมูลของ id เว้นว่างไม่ได้โดยเด็ดขาดนะครับ ไม่งั้น ท่าจะใส่ข้อมูลในตารางย่อยไม่ได้เลย ถ้าทุกอย่างถูกต้อง ก็จะเห็นข้อมูลที่ใส่ เป็นไปดังตัวอย่างเลย พอจะหาย งง บ้างไหมครับ ถ้ายังไม่หาย ก็ comment ถามได้เลย ว่า งง ตรงไหน จะได้อธิบายเป็นจุดๆ ไปครับ (ถ้าท่านได้หน้าตา ไม่เหมือนกันผม ก็อาจจะเพราะว่า ท่าน view เป็นแบบ list หรือ table อยู่นะครับ ที่ผม view คือ view แบบ form ครับ)

แต่ก่อนที่จะถาม ให้ download file ตัวอย่างที่ผมสร้างขึ้นใน post นี้ ไปศึกษาวิธีการสร้างก่อนนะครับ download ได้จาก link นี้เลย --> Customer

ลองทำดูนะครับ ไม่ยากเลย

0 ความคิดเห็น:

Post a Comment

บทความอื่นๆ