|
|
|
Access การสร้างฐานข้อมูล ถ้าเว็บที่จะทำมีหลายระบบ หลายส่วน เรา จะแบ่งไฟล์ access ไฟล์นึง สำหรับข้อมูลที่ใช้ร่วมกัน แล้วระบบที่ 1 ก็แยกไฟล์ access เป็นอีกไฟล์นึง แล้วค่อยใช้วิธี link table จะเป็นวิธีที่ดีป่าวคะ |
|
|
|
|
|
|
|
ลำบาก
|
|
|
|
|
Date :
2011-04-29 11:14:12 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กำ
|
|
|
|
|
Date :
2011-04-29 11:20:59 |
By :
unzeen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอร่วมแสดงความคิดเห็นนะครับ....
เนื่องจากเจ้าของกระทู้ต้องการใช้ Access...
ผมเป็นคนนึงที่ใช้ Access อย่างจริงๆจังมาสักระยะนึง และก็ใช้มันได้อย่างมีประสิทธิภาพพอสมควร ผมคิดว่าการใช้ Access ต้องคำนึงถึงขนาดของไฟล์ ว่ามันจะเติบโตขึ้นมากน้อยเพียงใดในแต่ละวัน 1 เดือน 1 ปี 3 ปี 5 ปี ........
เพราะ Access ไม่ใช่ RDBMS จึงอาจจะมีประสิทธิภาพจำกัดในการใช้งานอยู่บ้าง การ Link Tables นั้นจะมีข้อเสียก็คือ ถ้า Link เสีย ก็ต้องสั่งให้มัน Link ใหม่ ตอนที่ผมทำเป็น Application ผมก็จะทำระบบ Relink Tables ด้วย เผื่อในเวลาที่ต้องการย้ายไฟล์ไปไว้ที่อื่น หรือเปลี่ยนชื่อไฟล์ หรือเพิ่มไฟล์ที่ต้องการ Link สิ่งที่ต้องคำนึงอีกก็คือ Performance ของระบบด้วยนะครับ ^^
ส่วนการเขียนเป็นเวปนั้นอาจจะลำบากหน่อยสำหรับการ Relink โดยอาจจะต้องให้ผู้ดูแลระบบเข้าไป Relink เองเมื่อจำเป็น เพราะฉะนั้นผมจึงคิดว่าแยกไฟล์มันออกจากกันโดยอิสระนั่นแหละน่าจะปลอดภัยกว่า
การ Codeding นั้น ผมมองว่าไม่ยากเย็นสักเท่าไรนัก สิ่งที่เหนือยหน่อยก็คือการ Connection ที่ต้องใช้ Loop ซ้อน Loop นั่นเอง แต่พอทำได้แล้วก็ใช้ Concept เดียวกันได้เลยทั้งระบบ แต่ที่ต้องคำนึงถึงมากที่สุดก็คือ Exception error มากกว่า เพราะ การที่ต้องเปิด Connection ซ้อนๆกันนั้นอาจจะเกิด Error ขึ้นในระหว่างทาง ต้องจัดการกับ error พวกนี้ให้ดีว่าจะให้โปรแกรมทำอะไรต่องเมื่อเกิด Error ยิ่งถ้าเป็นข้อมูลที่ Out of control ด้วยแล้วจะยิ่งเหนื่อยกันหน่อยสำหรับการกำหนดขอบเขตในการป้อนข้อมูลให้ถูกต้อง
การใช้ Access นั้นไม่ได้ผิดอะไรหรอกนะครับ แต่ลองมองถึง RDBMS ตัวอื่นๆด้วยก็ดีนะครับ โดยคำนึงถึงประสิทธิภาพและความเสถียรของมัน ซึ่งมันอาจจะตอบโจทย์ของงานได้มากกว่าก็ได้ ปัจจุบันผมใช้ที่เป็นแบบ Open source เกือบทั้งหมด โดยใช้กับองค์กรขนาดเล็กถึงขนาดกลางได้อย่างมีปะสิทธิภาพ อาจจะไม่คุ้นเคยเหมือนการใช้ฐานข้อมูลฝั่ง Micro soft นัก แต่ก็ Concept เดียวกันทั้งนั้นล่ะครับ พอทำงานมาได้สักระยะหนึ่งก็จะมีความคิดใหม่ๆว่า "ไม่ว่าฐานข้อมูลยี่ห้อใหนก็มาเถอะ ไม่มีปัญหา"
|
|
|
|
|
Date :
2011-04-29 14:30:45 |
By :
Songkram |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค๊ะคุณ Plakrim และ คุณ Noom
ถ้าระบบเรามี 5 แผนก ที่ต้องมารวมในเว็บเดียวกัน ซึ่งก็ไม่รู้หรอกว่า อนาคต จะมี เพิ่มอีกไหม
ทุกแผนกก็ต้องใช้ข้อมูลลูกค้า
เราเลยอยากแยก ไฟล์ general.mdb ออกมากเลย ในนี้ก็จะมีข้อมูลลูกค้า ข้อมูลสินค้า ข้อมูลหลักๆ ข้อมูลบุคลากร ซึ่งทุกระบบต้องใช้นะคะ
นอกนั้นก็จะเป็น
1. ระบบเอกสาร (EDocument.mdb)
2. ระบบเบิกของ (ERequestion.mdb)
....
จะดีป่าวคะ หรือ ควรเอาทุกระบบ มารวมในไฟล์เดียวหมดเลย
ขอบคุณค๊ะ
|
|
|
|
|
Date :
2011-04-29 14:51:26 |
By :
unzeen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเราแยก แล้วไม่มีไฟล์ General แล้วทุกๆ ระบบต้องมีตารางลูกค้า อย่างนี้เวลา อัพเดทข้อมูลลูกค้าทีก็ต้องอัพเดททุกตาราง มันไม่ใช้วิธีที่ดีแน่ๆ ใช่ไม๊คะ
ขอคำแนะนำด้วยคะ
ขอบคุณมากๆๆๆๆคะ
|
|
|
|
|
Date :
2011-04-29 14:52:18 |
By :
unzeen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่รู้นะ ผมมองว่า ถ้าแยกไฟล์ นานๆ ไปไฟล์ต่างๆ ใหญ่ขึ้น เวลาลิงค์กันหรือจะเอามาจอยกัน มันน่าจะช้ากว่าไฟล์ใหญ่ไฟล์เดียว บอกเหตุผลไม่ถูกเพราะมันเป็นเรื่องของ os ละ
|
|
|
|
|
Date :
2011-04-29 15:17:28 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอเสนอคำแนะนำนะครับ....
อันนี้เป็นทางลัดเลยนะครับ แบบไม่ต้องทำตามบทเรียนกันทุกข้อเลยทีเดียว ^^
ในเบื้องต้น หลังจากไปเก็บ Requiremnet มาแล้ว ให้ออกแบบตารางการเก็บข้อมูล ทั้งหมดเท่าที่จะเป็นไปได้ออกมาก่อน โดยแบ่งย่อยออกเป็นในแต่ละระบบ (หรืออาจจะรวมทั้งหมดเป็นระบบเดียวกันก็ได้) ที่สำคัญก็คือการทำ Nomalization ถ้าตรงนี้ Work เราจะทราบทันทีว่าเราควรจะแบ่งไฟล์ต่างๆออกจากกันหรือไม่ เพราะเราจะทราบถึงความสัมพันธ์กัน (Relation) ของตารางทั้งหมด (การทำ Normalization จะทำให้ระบบเราไม่ซ้ำซ้อนกัน)
ขั้นต่อมาให้สร้างตารางทั้งหมดให้อยู่ใน Access เดียวกันนี่แหละ แล้วก็สร้าง Application หรือ Web app ขึ้นมาเพื่อทดสอบการกรอกข้อมูลไปด้วย ที่แนะนำแบบนี้เพราะคิดว่า ในตอนนี้คุณอาจจะยังประเมินขนาดของโปรเจค์ไม่ค่อยออกว่าจะใหญ่โตเพียงใด แต่... ตารางข้อมูลสามารถย้ายไปในที่ต่างๆ หรือแยกออกจากกันได้อยู่แล้ว ถ้าอนาคตระบบมันใหญ่ขึ้นก็แค่ Export บางตารางไปไว้ที่อื่นก็ยังได้ ถ้าเป็นการเขียน Application ก็ใช้ได้ทั้ง Link หรือไม่ Link ก็ได้ (ODBC, ADO ฯลฯ)
ถ้าเป็นการเขียน Web App และใช้ในระบบของตัวเองเท่านั้น ก็ไม่น่าจะมีปัญหาในเรื่องของการ Link แต่ถ้าอนาคตระบบใหญ่มากขึ้นเรื่องๆ ค่อยแยกตารางออกเป็นระบบย่อย (แยกไฟล์) โดยระหว่างที่พัฒนาก็อาจจะทดลองเขียนเวปแบบมากกว่า 1 connection ที่ต้องใช้ Loop ซ้อนกันไปด้วยก็ได้ครับ
สรุปก็คือ ออกแบบทั้งหมดมาในไฟล์เดียวกันก่อน แล้วค่อยประเมินในอนาคตอีกทีว่าสมควรจะแยกหรือไม่
ปล. เหตุผลที่เป็นไปได้ในการแยกก็คือ 1. ขนาดข้อมูลใหญ่โตมาก 2. ระบบแยกใช้งานกันอย่างอิสระ (แต่อาจจะมีบางตารางใช้ร่วมกัน) 3. ป้องกันไฟล์เสียหายอันเนื่องมาจากการเข้าใช้งานพร้อมๆกันมากเกินไป (จำนวน Connection)
ปล. ยังไงผมก็ยังสนับสนุนการใช้ DBMS แท้ๆ มากกว่านะครับ สามารถหาข้อมูลได้มากกว่า Access เสียอีก ^^
|
|
|
|
|
Date :
2011-04-29 15:54:17 |
By :
Songkram |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|