30-08-19, 04:42 PM
(آخر تعديل لهذه المشاركة : 30-08-19, 04:56 PM {2} بواسطة ابراهيم ايبو.)
السلام عليكم ورحمة الله وبركاته اخي العزيز Sniperjwadino
مسألة الحفظ من قبل اكثر من مستخدم في نفس الثانية وكيف سيتم الامر لم ترد في خاطري ولكن لنناقش الامر بموضوعية
سنسأل ماهو الزمن الذي سيستغرقه حفظ فاتورة ؟ اظن الامر بالميلي ثانية واعتقد ان قاعدة البيانات لاتنفذ امرين حفظ بالتوازي بل بالتسلسل.. اما اين هي المشكلة التي قد تواجهنا؟
لو كنا نستخدم الوضع المتصل والاي دي ترقيم تلقائي اعتقد لامشكلة
اما في الوضع المنفصل فإن كلا الحاسبين سيقومان بجملة الحفظ ولنفترض ان الاي ترقيم تلقائي
اعتقد ستمر الامور بسلام حفظ تلو الاخر (حالة جيدة)
اما لو كان الاي دي ترقيم عن طريق جلب اكبر قيمة فسيقوم كلا المستخدمين بجلب اكبر قيمة +1 وسيكون الرقم نفسه لدى الاثنين وعند انتهاء ملء الفاتورة سيقوم احد المستخدمين بالحفظ قبل الاخر ولن يواجه مشكلة اما الثاني فعندما يضغظ على زر الحفظ سيظهر له الخطأ (لايمكن الحفظ بسبب ان البيانات مكررة) لان الاي دي قد تم استخدامه من قبل المستخدم الاول وهنا يجب على المستخدم الثاني اعادة جلب الاي دي من جديد(حالة سيئة)
الان ماهو الحل: من وجهة نظري في بداية كود الحفظ نقوم بعمل استعلام للاي دي ونضيف له +1 ونضعه في متغير بجيث حقل الايدي في الجدول باخذ منه عند الحفظ ( ربما تقول لماذا لانضيف +1 على الاي دي الذي جلبناه قبل الحفظ) الجواب : افترض ان المستحدم الاول قام بحفظ فاتورتين مثلا والثاني لم يحفظ فاتورته بعد عندها المفروض ان يكون الاي دي +2)
في الختام اخي العزيز الامر يحتاج لدقة وتجربة (لانني لم اواجه او اجرب مثل هذه الحالة ولكن افكر معك عن الحل)
دمت بخير
مسألة الحفظ من قبل اكثر من مستخدم في نفس الثانية وكيف سيتم الامر لم ترد في خاطري ولكن لنناقش الامر بموضوعية
سنسأل ماهو الزمن الذي سيستغرقه حفظ فاتورة ؟ اظن الامر بالميلي ثانية واعتقد ان قاعدة البيانات لاتنفذ امرين حفظ بالتوازي بل بالتسلسل.. اما اين هي المشكلة التي قد تواجهنا؟
لو كنا نستخدم الوضع المتصل والاي دي ترقيم تلقائي اعتقد لامشكلة
اما في الوضع المنفصل فإن كلا الحاسبين سيقومان بجملة الحفظ ولنفترض ان الاي ترقيم تلقائي
اعتقد ستمر الامور بسلام حفظ تلو الاخر (حالة جيدة)
اما لو كان الاي دي ترقيم عن طريق جلب اكبر قيمة فسيقوم كلا المستخدمين بجلب اكبر قيمة +1 وسيكون الرقم نفسه لدى الاثنين وعند انتهاء ملء الفاتورة سيقوم احد المستخدمين بالحفظ قبل الاخر ولن يواجه مشكلة اما الثاني فعندما يضغظ على زر الحفظ سيظهر له الخطأ (لايمكن الحفظ بسبب ان البيانات مكررة) لان الاي دي قد تم استخدامه من قبل المستخدم الاول وهنا يجب على المستخدم الثاني اعادة جلب الاي دي من جديد(حالة سيئة)
الان ماهو الحل: من وجهة نظري في بداية كود الحفظ نقوم بعمل استعلام للاي دي ونضيف له +1 ونضعه في متغير بجيث حقل الايدي في الجدول باخذ منه عند الحفظ ( ربما تقول لماذا لانضيف +1 على الاي دي الذي جلبناه قبل الحفظ) الجواب : افترض ان المستحدم الاول قام بحفظ فاتورتين مثلا والثاني لم يحفظ فاتورته بعد عندها المفروض ان يكون الاي دي +2)
في الختام اخي العزيز الامر يحتاج لدقة وتجربة (لانني لم اواجه او اجرب مثل هذه الحالة ولكن افكر معك عن الحل)
دمت بخير
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات