متشائم مقابل متفائل التزامن (تأمين مقابل التغذية الراجعة)

StackOverflow https://stackoverflow.com/questions/659489

سؤال

أنا بناء التطبيق مع المعايير التالية:

  • عناصر العمل:البنود التي تحتاج إلى يدويا يعملون عبر شبكة الإنترنت من قبل المستخدمين (قصيرة واحدة في شكل صفحة)
  • العديد من المستخدمين يعملون 'عناصر العمل'
  • كل مستخدم لديه طابور من عناصر العمل'
  • هناك البحث الذي يتيح للمستخدمين عرض عناصر العمل و تعيين عناصر العمل' إلى طوابير
  • يمكن للمستخدمين اتخاذ 'عناصر العمل من الآخرين طوابير طريق تعيين لهم أنفسهم

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

الخيار الذي تعتقد بأنه أفضل ؟ يمكنك ذكر أي تعميم التطبيقات التي تدعم رأيك ؟

الخيار 1:

  • عندما المستخدم يذهب إلى رأي أو العمل 'عنصر العمل" و "العمل البند' يصبح مؤمنا.
  • عند المستخدمين الآخرين انتقل إلى عنصر العمل بعد المستخدم بفتح 'عنصر العمل' ، إلا أنها سوف تكون قادرا على رؤية 'عنصر العمل'.أنها لا يمكن أن يكتب.
  • قفل تنتهي بعد ن دقيقة في نقطة أخرى يمكن للمستخدم قفل 'عنصر العمل'.

الخيار 2:

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

أنا شخصيا مثل الخيار 2.أفكار من فضلك ؟

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

المحلول

يبدو أنك تتحدث عن متشائم الآيات متفائل التزامن التحكم.

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

اسمحوا لي أن أعرف إذا كنت تريد أن ترى أمثلة التعليمات البرمجية باستخدام RowVersion نوع البيانات في SQL Server (هذا ما أنا حاليا باستخدام), انها بسيطة جدا على الرغم من:

  • جميع الجداول تشمل RowVersion العمود
  • جميع استعلامات التحديد يتضمن هذا العمود (على البيانات التي يمكن تعديلها)
  • كل تحديث أو حذف الاستفسارات وتشمل حيث RowVersion = @RowVersion.هذا هو جزء متفائل, 0 إذا صفوف عاد ثم شخص آخر وقد لمست الصف, لا تحديث يأخذ مكان ، حتى تخبر المستخدم عن ذلك.ملاحظة:إذا كان الصف تحديث ثم قيمة جديدة RowVersion كما ينبغي أن يعاد.هذا ينطبق أيضا على إدراج الاستعلامات, مثل الكثير من يمكنك العودة معرف هوية العمود بعد إدراج.

نصائح أخرى

غير متأكد من كيفية وصف الشكل بعبارات بسيطة, ولكن ليس لها المجتمع الصفحة لها لمرة واحدة.نظريا, دعونا نقول كان المستخدم لتتناسب مع اسم يوحنا DOEE إلى أحد التالية جون دو جون القيام به مرة واحدة إنه عمل تحرير كاملة.في حالتنا نحن لن تحتاج إلى مجرد

معتبرا أن تعليق, وأود أن تذهب مع الخيار 1.معتبرا أن هذه التغييرات هي واحدة التغييرات الوقت, ليس هناك فائدة مما يتيح العديد من الأشخاص إلى العمل على نفس التغيير.أنت فقط إضاعة 2nd الوقت لشخص ما.

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

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