กระทู้เก่าบอร์ด อ.Yeadram
1,919 9
URL.หัวข้อ /
URL
การใช้งานฐานข้อมูลพร้อกัน
วันนี้มีปัญหาอีกแล้วครับ คือว่าถ้าเราใช้ฐานข้อมูลตัวเดียวกัน เช่น มีการแก้ไขรายละเอียดสินค้าตัวกัน โดย นาย A และ นาย B ถ้านาย A มีการแก้ไขก่อน นาย B จะไม่สามารถพิมพ์อะไรได้นอกจากนาย A จะเซฟงานและออกจากหน้านั้น
พอจะมีระบบนี้หรือป่าวครับ เพราะในการใช้งานจริง มีสินค้าและลูกค้าเยอะมาก ซึ่ง นาย A หรือนาย B ก็ไม่รู้ว่าใครแก้ไขสินค้าอะไรบ้าง เลยอยากให้โปรแกรมมีกานเช็คให้เราอัตโนมัติเพื่อกันการใช้งานสินค้าตัวเดียวพร้อมกัน
พอจะมีระบบนี้หรือป่าวครับ เพราะในการใช้งานจริง มีสินค้าและลูกค้าเยอะมาก ซึ่ง นาย A หรือนาย B ก็ไม่รู้ว่าใครแก้ไขสินค้าอะไรบ้าง เลยอยากให้โปรแกรมมีกานเช็คให้เราอัตโนมัติเพื่อกันการใช้งานสินค้าตัวเดียวพร้อมกัน
9 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R14538
ชอบคุณครับ อาจารย์สันติสุข ถ้าไม่เป็นการรบกวนจนมากเกินไปจะขอถามอีกซักข้อนะครับ คือว่าผมสร้างตารางมาสองตาราง ซึ่งเชื่อมโยงกันอยู่แด้วเช่น ตารางเนมกับตารางอายุ เช่น ถ้าเลือกชื่อเป็น wisit ตารางอยุจะเป็น 25 อัตโนมัติ ถ้าเลือก a อายุจะเป็ฯ 29
3 @R14540
หมายถึงให้แสดงบนฟอร์มหรือบนคิวรี่หรืออย่างไรครับ ถ้าเป็นฟอร์ม คุณตั้งชื่อเท็กซ์บ็อกซ์ว่าอะไรบ้าง ชื่อตารางและชื่อฟิลด์ในตารางอะไรบ้างที่เกี่ยวข้อง
หรือตามนี้ http://www.thai-access.com/yeadram_view.php?topic_id=2109 พอจะตอบคำถามได้ไหม
หรือตามนี้ http://www.thai-access.com/yeadram_view.php?topic_id=2109 พอจะตอบคำถามได้ไหม
4 @R14541
คือว่าผมเริ่มต้นไม่ถูกครับ ตาราง คิวรี หรือฟอร์ม ผมรู้แต่ว่า
ฐานข้อมูลมี บริษัทลูกค้า วันที่ รหัสสินค้า ชื่อสินค้า ขนาดสินค้า น้ำหนักสินค้า
ผมต้องการจะบันทึกบริษัทลูกค้า วันที่
ส่วน รหัสสินค้า ชื่อสินค้า ขนาดสินค้า และน้ำหนักสินค้า ก็ดึงมาจากฐานข้อมูลซึ่งสัมพันธ์กันเช่น พอเราเลือก combobox รหัสสินค้า ในนั้นก็จะมีชื่อสินค้า ขนาดสนิค้า และน้ำหนักสินค้าให้เราเลื่อนสกอร์บาร์เลือก พอเลือกเสร็จแล้วมาบันทึก ข้อมูลทั้งหมดก็จะถูกบันทึกในฐานข้อมูลเดียวกัน
ฐานข้อมูลมี บริษัทลูกค้า วันที่ รหัสสินค้า ชื่อสินค้า ขนาดสินค้า น้ำหนักสินค้า
ผมต้องการจะบันทึกบริษัทลูกค้า วันที่
ส่วน รหัสสินค้า ชื่อสินค้า ขนาดสินค้า และน้ำหนักสินค้า ก็ดึงมาจากฐานข้อมูลซึ่งสัมพันธ์กันเช่น พอเราเลือก combobox รหัสสินค้า ในนั้นก็จะมีชื่อสินค้า ขนาดสนิค้า และน้ำหนักสินค้าให้เราเลื่อนสกอร์บาร์เลือก พอเลือกเสร็จแล้วมาบันทึก ข้อมูลทั้งหมดก็จะถูกบันทึกในฐานข้อมูลเดียวกัน
5 @R14544
คุณทำอะไรไปแล้วบ้าง อธิบายมาด้วย
1) มีกี่ตาราง แต่ละตารางมีฟิลด์อะไรบ้าง
2) คำว่า "ฐานข้อมูลซึ่งสัมพันธ์กัน" มันถึงอย่างไร ทำอะไรมันถึง "สัมพันธ์กัน" อธิบายมาด้วยครับ
3) "พอเลือกเสร็จแล้วมาบันทึก ข้อมูลทั้งหมดก็จะถูกบันทึกในฐานข้อมูลเดียวกัน" ข้อมูลทั้งหมดนี่คือฟิลด์อะไร, บันทึกลงเทเบิลอะไร
แต่ถ้าทั้งหมดนั้นยังไม่ได้ทำอะไรเลย เป็นแค่ความต้องการเฉยๆ อย่างนี้ผมไม่ช่วยนะ เพราะผมไม่มีเวลาถึงขนาดมาออกแบบระบบให้นะครับ คุณต้องเป็นคนออกแบบระบบเองว่ามันจะเป็นอย่างไร แต่เมื่อติดปัญหาในส่วนไหนแล้วมาถาม อย่างนี้พอช่วยเหลือกันได้ครับ
1) มีกี่ตาราง แต่ละตารางมีฟิลด์อะไรบ้าง
2) คำว่า "ฐานข้อมูลซึ่งสัมพันธ์กัน" มันถึงอย่างไร ทำอะไรมันถึง "สัมพันธ์กัน" อธิบายมาด้วยครับ
3) "พอเลือกเสร็จแล้วมาบันทึก ข้อมูลทั้งหมดก็จะถูกบันทึกในฐานข้อมูลเดียวกัน" ข้อมูลทั้งหมดนี่คือฟิลด์อะไร, บันทึกลงเทเบิลอะไร
แต่ถ้าทั้งหมดนั้นยังไม่ได้ทำอะไรเลย เป็นแค่ความต้องการเฉยๆ อย่างนี้ผมไม่ช่วยนะ เพราะผมไม่มีเวลาถึงขนาดมาออกแบบระบบให้นะครับ คุณต้องเป็นคนออกแบบระบบเองว่ามันจะเป็นอย่างไร แต่เมื่อติดปัญหาในส่วนไหนแล้วมาถาม อย่างนี้พอช่วยเหลือกันได้ครับ
6 @R14545
ขึ้นต้นผมลองสร้าง Table ชื่อ T_Name โดยมีฟิล ID Name Age Gender
แล้วผมสร้าง form ชื่อ fm_test โดยดึงตาราง T_Name มาใส่ แล้วสร้างปุ่มบันทึกตารางเพิ่มครับ ผมต้องการให้เวลาเลือก Name ปุ่ม จะขึ้น Age และ Gender อัตโนมัต เช่น wisit อายุ 26 เพศชาย เวลาเลือก wisit มันก็จะขึ้น 26 M อัตโนมัตโดยไม่ต้องไปป้อนข้อมูลอีกเพราะเดี๋ยวป้อนผิดอีก แต่ก็จะมีกรณีนึง เช่น wisit มีหลายคน ก็จะให้เลือกอายุที่สัมพันธิ์กับชื่อ
แล้วผมสร้าง form ชื่อ fm_test โดยดึงตาราง T_Name มาใส่ แล้วสร้างปุ่มบันทึกตารางเพิ่มครับ ผมต้องการให้เวลาเลือก Name ปุ่ม จะขึ้น Age และ Gender อัตโนมัต เช่น wisit อายุ 26 เพศชาย เวลาเลือก wisit มันก็จะขึ้น 26 M อัตโนมัตโดยไม่ต้องไปป้อนข้อมูลอีกเพราะเดี๋ยวป้อนผิดอีก แต่ก็จะมีกรณีนึง เช่น wisit มีหลายคน ก็จะให้เลือกอายุที่สัมพันธิ์กับชื่อ
7 @R14546
ข้ออนุญาติไปโพสกระทู้ใหม่ชื่อ ถามการลิ้งข้อมูล นะครับ มันโพสไม่ได้แล้ว
8 @R14551
โดยปกติ ถ้าเราออกแบบเทเบิล T_Name ได้ถูกต้อง ข้อมูลของฟิลด์ต่างๆใน T_Name ย่อมขึ้นตรงกับฟิลด์ ID อยู่แล้ว และของคุณก็ออกแบบได้ถูกแล้ว ดังนั้นถ้าเราต้องการข้อมูลในฟิลด์ใดของ T_Name เราก็ไม่จำเป็นจะต้องเก็บค่าฟิลด์เหล่านั้นซ้ำลงในเทเบิลอื่นอีก เราเพียงแค่เก็บ ID ของบุคคลนั้นลงในเทเบิลอื่นก็เพียงพอ ส่วนข้อมูลของฟิลด์ต่างๆในเทเบิล T_Name เราก็ดึงมาโดยใช้ค่า ID ที่เราเก็บไว้เป็นตัวไปค้นหาแทน แต่ถ้าคุณมีเหตุผลเพียงพอที่จะอธิบายได้ว่าทำไมถึงจะเก็บค่าของฟิลด์ Name, Age, Gender ซ้ำลงในเทเบิลอื่นโดยไม่ไปใช้การค้นหาจากค่า ID อย่างที่ผมอธิบายข้างต้น คุณก็ทำไปเถอะครับ ไม่ผิดแต่อย่างใด
แต่ที่งงก็คือ
1) คุณบอกว่าเอา T_Name ไปสร้างเป็นฟอร์ม fm_Test และบอกว่า "แล้วสร้างปุ่มบันทึกตารางเพิ่ม" ไม่ทราบว่าเพิ่มไปที่เทเบิลอะไรครับ
2) "ผมต้องการให้เวลาเลือก Name ปุ่ม จะขึ้น Age และ Gender อัตโนมัติ" ปุ่มของคุณคืออะไรครับ เป็น command button ใช่หรือไม่ ? แล้วทำไมต้องทำเป็นปุ่ม มีปุ่มแล้วให้คลิกกดแล้วจะเกิดอะไรขึ้น ทำไมไม่เป็นเท็กซ์บ็อกซ์
แต่ที่งงก็คือ
1) คุณบอกว่าเอา T_Name ไปสร้างเป็นฟอร์ม fm_Test และบอกว่า "แล้วสร้างปุ่มบันทึกตารางเพิ่ม" ไม่ทราบว่าเพิ่มไปที่เทเบิลอะไรครับ
2) "ผมต้องการให้เวลาเลือก Name ปุ่ม จะขึ้น Age และ Gender อัตโนมัติ" ปุ่มของคุณคืออะไรครับ เป็น command button ใช่หรือไม่ ? แล้วทำไมต้องทำเป็นปุ่ม มีปุ่มแล้วให้คลิกกดแล้วจะเกิดอะไรขึ้น ทำไมไม่เป็นเท็กซ์บ็อกซ์
9 @R14554
งั้นผมยกตัวอย่างการใช้งานจริงดีกว่านะครับ
อธิบายจากรูปนะครับ คือต้องการทำให้เวลาเพิ่มสินค้าหรือเลือกสินค้าไปในฐานข้อมูล เวลาเลือก combobox มีจะขึ้น M'Samsung 1 ตัว M'Sony 1 ตัว สมมุติเลือก Samsung พอจะไปเลือก PS มันก็ให้เลือก 15 กับ 17 ( 16กับ 18เป็นของ M'Sony) สมมุติเลือก 15 พอเลือกเสร็จก็เลือก PW มันก็จะมีแค่ 20 (เพราะ 21 เป็นของ PS 17) สุดท้ายก็บันทึกลง Table1
อธิบายจากรูปนะครับ คือต้องการทำให้เวลาเพิ่มสินค้าหรือเลือกสินค้าไปในฐานข้อมูล เวลาเลือก combobox มีจะขึ้น M'Samsung 1 ตัว M'Sony 1 ตัว สมมุติเลือก Samsung พอจะไปเลือก PS มันก็ให้เลือก 15 กับ 17 ( 16กับ 18เป็นของ M'Sony) สมมุติเลือก 15 พอเลือกเสร็จก็เลือก PW มันก็จะมีแค่ 20 (เพราะ 21 เป็นของ PS 17) สุดท้ายก็บันทึกลง Table1
Time: 0.3720s
แต่...ยังไงระบบจัดการฐานข้อมูล มันก็จะตรวจสอบเองแหล่ะว่า เรคอร์ดที่นาย B กำลังแก้ไข ได้ถูกคนอื่นแก้ไขไปก่อนหน้านี้หรือไม่ ถ้าใช่ ระบบก็จะถามว่า ต้องการจะเขียนทับที่คนอื่นแก้ไขไปแล้วหรือเปล่า แต่โดยปกติแล้ว ถ้าเรคอร์ดนั้นถูกคนอื่นแก้ไขไปแล้วสักระยะ ถ้านาย B ยังไม่ได้แก้ไขอะไร ข้อมูลบนหน้าจอของนาย B จะถูกปรับปรุงด้วยโดยอัตโนมัติ ถ้านาย B แก้ไขหลังจากนั้น กรณีอย่างนี้ระบบจะไม่ตรวจสอบอะไรให้ครับ เพราะถือว่าคุณเห็นข้อมูลที่ปรับปรุงเป็นปัจจุบันอยู่แล้ว