سؤال

وأنا تطوير تطبيق PHP / ماي الذي يعالج المستخدمين المتزامنة متعددة. أنا أفكر في أفضل نهج لاتخاذ عندما يتعلق الأمر قفل / محذرا من السجلات التي يتم حاليا يتم عرضها / تحريرها.

والسيناريو لتجنب واثنين من المستخدمين عرض السجل، واحد إجراء تغيير، ثم من جهة أخرى القيام بالمثل - مع احتمال أن التغيير يمكن للمرء أن الكتابة السابقة

في أحدث إصدارات وورد أنها تستخدم بعض الطرق للكشف عن هذا، ولكن لا يبدو موثوقا تماما - في كثير من الأحيان يعود ايجابيات كاذبة، على الأقل في تجربتي

وأفترض نوعا من اياكس يجب أن يكون في مكان ل"بينغ" تطبيق والسماح لها معرفة رقم قياسي لا يزال يتم عرضها / تحريرها (وإلا، فإن المستخدم قد ببساطة إغلاق نافذة المتصفح، ثم كيف يعرف التطبيق ذلك).

وحل آخر يمكن أن أرى هو للتحقق من وقت آخر تحديث عندما يقدم رقما قياسيا لتحديث، لمعرفة ما إذا كان في هذه الأثناء قد تم تحديثه في مكان آخر - وبعد ذلك تقدم للمستخدم خيار لمتابعة أو تجاهل التغييرات الخاصة بهم.

وربما أنا ينبح حتى الشجرة خاطئة من حيث الحل؟ - ما هي شعوب الخبرات لتنفيذ هذا (ما يجب أن يكون شائع الى حد كبير) شرط

هل كانت مفيدة؟

المحلول

وأود أن تفعل هذا: تخزين وقت التعديل الأخير في شكل تحرير. قارن هذه المرة على تقديم مع الوقت المخزنة في قاعدة البيانات. إذا كانت هي نفسها، تأمين الجدول، تحديث البيانات (جنبا إلى جنب مع تعديل الوقت) وفتح الجدول. إذا كانت الأوقات المختلفة، إعلام المستخدم عن ذلك، ونسأل لاتخاذ الخطوة التالية.

نصائح أخرى

وراجع: <لأ href = "https://stackoverflow.com/questions/624186/what-can-i-do-to-prevent-write-write-conflicts-on-a-wiki-style-website" > ما الذي يمكنني القيام به لمنع الصراعات الكتابة والكتابة على موقع على شبكة الانترنت على غرار يكي؟

وفكرة جيدة مع المقارنة الطابع الزمني. انها غير مكلفة لتنفيذ، وانها عملية غير مكلفة لتشغيلها في الإنتاج. لديك فقط لكتابة المنطق أن يرسل إلى الخلف للمستخدم رسالة الحالة التي لم تحدث من الكتابة / التحديث لأنه شخص اعتدوا عليهم بالضرب عليه.

وربما تنظر تخزين اسم المستخدم على كل تحديث في حقل يسمى شيء من هذا القبيل "LastUpdateBy، والعودة أن يعود إلى المستخدم الذي كان التحديث على استبق. فقط القليل من دقة للمستخدم. لطيفة بالمعنى الشركات، وربما ليس في بيئة حيث أنه قد لا يكون مناسبا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top