ผมอยากทราบการออกแบบฐานข้อมูลที่มีrecordจำนวนมากๆทำอย่างไรครับ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 338   9
URL.หัวข้อ / URL
ผมอยากทราบการออกแบบฐานข้อมูลที่มีrecordจำนวนมากๆทำอย่างไรครับ

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

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

1 @R02762
คิดว่าน่าจะใช้ Oracle หรือ SQL Server หรือฐานข้อมูลใหญ่อย่างนี้

ส่วนการ Search เห็นเขาจะค้นหาโดยหมายเลขโทรศัพท์ของเรา ก็คงทำให้เป็น Index ไว้ ก็จะทำให้ค้นหาได้ไวขึ้นครับ ประกอบกับการเช่า(หรือของเขาเอง)สายโทรศัพท์ที่มีความเร็วสูง การวิ่งไปหา Server ที่กรุงเทพฯ ก็ไม่ใช่อุปสรรคเลย

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

ใครทำงานที่นี่ลองถามๆ มาเป็นความรู้ให้ด้วยครับ ที่ผมเดามาข้างต้นอาจไม่ถูกเลยก็ได้
2 @R02768
ผมเคยคิดว่ามันน่าจะเป็นแบบนี้ คือ จะมีTable สำหรับลูกค้าแต่ละคนเพื่อเก็บข้อมูลที่ผ่านมาทั้งหมด แล้วมีอีกTableนึงเป็นTableที่ใช้ในการพิมพ์Billออกมา แต่ถ้าทำอย่างนี้แล้วUserเกิดอยากจะดูอะไรแปลกๆ เช่น ใน3เดือนนี้มีหมายเลขไหนที่มียอดการใช้สูงสุด(10อันดับแรก) ถ้าเป็นอย่างนี้จะเขียนSQLกันอย่างไรครับ?
หรือบางทีผมอาจจะตั้งคำถามผิดไป ถ้าเป็นธนาคารจะออกแบบDatabaseกันอย่างไรครับ เพราะจะต้องเก็บข้อมูลของลูกค้าทุกคนกันไว้เป็นปีเลย และยังสามารถเรียกดูข้อมูลได้หลายแบบอีกด้วย
3 @R02772
ระบบธนาคารก็จะเก็บรายละเอียดของการเข้าออกของเงินแต่ละ บ/ช ไว้ไม่กี่เดือน แล้วก็จะทำการทำการ BackUp ไปไว้ที่อื่น แล้วเก็บค่าการเคลื่อนไหว 2-3 เดือนสุดท้ายเท่านั้น ข้อมูลจึงมีสำหรับทำการไม่มากอย่างที่คิด จะเห็นได้จากเวลาเราไม่ไป update สมุดฝากนานๆ จะไม่มีรายละเอียดเงินเข้าออกให้เห็นครับ

4 @R02784
แต่เราสามารถขอStatementย้อนหลัง6เดือน หรือ 1ปีก็ได้นี่ครับ (ที่รู้ก็เพราะพึ่งไปเอามา ขอผ่อนรถ) ที่อยากทราบก็เพราะการออกแบบDBโดยปกติสามารถหาอ่านได้ทั่วๆไป(จะกี่NFก็เถอะ) แต่ตรงนี้ผมเคยจะทำโปรเจค คิดยังไงก็คิดไม่ออกครับ ไม่มีพรรคพวกในวงการนี้ด้วย(จบวิศวะไฟฟ้ากำลังครับ) และคิดว่ามีอีกหลายคนที่อยากรู้และมันน่าจะเป็นประโยชน์ ผมจึงรบกวนถามคำถามนี้ครับ
5 @R02785
ถ้าเพื่อนๆ ที่นี่เคยทำงานด้านนี้คงจะเข้ามาช่วยตอบได้ครับ รอเป็นวันทำงานคงมีเข้ามาครับ

การออก Statement ย้อนหลังมากๆ คงเป็นการเีรียกจากตัว BackUp มากกว่าครับ
6 @R02790
ผมทำงานธนาคารครับ ปกติเราจะทำการ Backup ข้อมูลประมาณ 6 เดือนย้อนหลัง ซึ่งข้อมูลที่เกินกว่านั้นจะถูก Backup ในเทป และนำกลับมาใช้ใหม่ได้เมื่อต้องการครับ
7 @R02815
แล้วการออกแบบฐานข้อมูลละครับ ผมเคยเห็นของพวกโรงแรม จะมีการสร้างTableของห้องนั้นๆขึ้นมาใหม่ทุกครั้งที่มีการCheckIn Tableนี้จะใช้เก็บค่าใช้จ่ายต่างๆ แล้วลักษณะของฐานข้อมูลที่มีลูกค้าที่ต้องเก็บเงินค่าใช้จ่ายทุกๆเดือน อย่างเช่น ค่าโทรฯ, ค่านํา-ไฟ, ค่าผ่อนสินค้า, ฯลฯ พวกนี้ทำกันอย่างไรครับ มีการสร้างTableของลูกค้าคนนั้นๆขึ้นมาหรือเปล่าครับ ถ้าทำอย่างนั้นการที่ค้าหาข้อมูลบางอย่าง เช่น "ผู้ใช้ไฟสูงสุด10อัดับแรก" อย่างนี้จะมีคำสั่งในการค้นหากันอย่างไรครับ กรณีที่เป็นธนาคาร ก็จะมีบัตรเครดิต/เดบิต ซึ่งก็จะใช้กันประจำ จะมีการเก็บข้อมูลกันอย่างไรครับ บางทีก็มีผ่อนด้วย ในบางกรณีผู้จัดการอาจจะอยากได้ข้อมูลของลูกค้าที่มีการใช้จ่ายของบัตรที่เปลี่ยนแปลงจากเดือนก่อนมากที่สุด10อันดับแรก เราจะออกแบบฐานข้อมูลและค้นหาอย่างไร รบกวนคุณ สมนึก ช่วยตอบด้วยครับ
8 @R02816
ขอแจมด้วยคนครับ
แถวบ้านผม (ปทุมธานี) มีการคำนวณค่าไฟฟ้าผิดพลาดบ่อยมาก
ผมคิดว่าน่าจะมีการเขียน Program ป้องกัน "การคำนวณผิดพลาด
โดยมนุษย์" (Human Error) โดยอาศัยข้อมูลเฉลี่ยทางสถิติ+ค่า FT.
เรื่องอย่างนี้การไฟฟ้าอาจบอกว่า มีการออกแบบ dB อย่างยอดเยี่ยม
แต่ชาวบ้าน เขาไม่เข้าใจหรอก. เอ่อ....กำลังจะบอกว่า นอกจากจะ
ออกแบบระบบดีแล้ว ต้องมีการประชาสัมพันธ์ สร้างความน่าเชื่อถือ
ด้วย ดาต้าเบสจะไร้ความหมาย หากขาดความน่าเชื่อถือในข้อมูล.
(หมายถึง การออกแบบ Program + Process)
ท่านใดมีประสบการณ์ ขาดความมั่นใจในข้อมูลของรัฐหรือองค์กรใดบ้าง?

ป.ล. ต้องขอโทษท่านเจ้าของกระทู้ แต่เห็นว่าเป็นเรื่อง การออกแบบฐานข้อมูล
9 @R02844
เนื่องจากระบบธนาคารเป็นระบบที่ค่อนข้างใหญ่ และการใช้โปรแกรมของธนาคารนั้นเป็น คอมพิวเตอร์เมนเฟรมซึ่งมีความสามารถมากกว่าเครื่องคอมพิวเตอร์ที่เราใช้กันอยู่มาก ซอฟท์แวร์ที่นิยมใช้นั้นก็ซื้อมาจากบริษัทชั้นนำ เช่น เอเอส 400 ของ ไอบีเอ็ม นอกจากนี้ยังมี Application ที่พัฒนาด้วย VB และ SQL เพื่อใช้รองรับระบบย่อยภายในธนาคารเอง ภาษาที่ใช้ในการพัฒนาเท่าที่ผมทราบมักนิยมใช้ภาษาซีที่เมนเฟรม นอกจากที่ผมกล่าวถึงยังมีซอฟท์แวร์อีกเป็นจำนวนมาก ส่วนดาต้าเบสที่คุณกล่าวถึงนั้น เท่าที่ผมทราบเกี่ยวกับบัตรเครดิต มีฟิลด์ที่จัดเก็บมากว่า 2000 ฟิลด์ทีเดียว ส่วนข้อมูลของลูกค้าที่มีการใช้จ่ายของบัตรที่เปลี่ยนแปลงจากเดือนก่อนมากที่สุด10อันดับแรกนั้น เรามักใช้ซอฟท์แวร์เพื่อดาว์นโหลดฟิลด์ที่ต้องการออกมาถ้าข้อมูลไม่มากเกินไปนัก ผมก็มักใช้ Access ส่วนคำสั่งหาอันดับนั้นผมก็ได้มาจากอาจารย์ สุภาพ เช่นกันครับ

SELECT TOP X Income, CustName, CustID
FROM tbl
ORDER BY InCome DESC;

โดยการแทน X ด้วยค่าที่ต้องการ เช่น 5 หรือ 10 ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1387s