سؤال

لدي جدول يحتوي على المهام و أريد أن أعطي هذه صريح يأمر بناء على أولوية مهمة.الطريقة الوحيدة التي يمكنني أن أفكر للقيام بذلك هو عن طريق فريدة من نوعها الباحث عمود الفهارس حيث المهمة في مدة الأولوية (أي1 هو أعلى 1000 منخفضة).

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

يمكن لأي شخص أن يقترح أفضل طريقة لتنفيذ هذا ؟

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

المحلول

استخدام العدد الحقيقي قيمة الأولوية.يمكنك دائما الشريحة في قيمة بين اثنين القيم الموجودة مع شيء من هذا القبيل newPri = task1Pri + (task2Pri - task1Pri)/2 حيث Task1 لديه أولوية أقل قيمة رقمية (الذي هو على الأرجح أعلى piority).

Corin تشير min و max الأولويات يجب أن يكون حساب المهام المدرجة في الجزء العلوي أو السفلي من قائمة الأولويات.

و joelhardi يذكرنا أن إعادة ترتيب العملية هي فكرة جيدة لتنظيف الطاولة من وقت لآخر.

نصائح أخرى

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

أنا مثل كيفن إجابة أفضل, ولكن إذا كنت تريد سريعة وقذرة الحل, فقط تفعل ذلك بالطريقة التي سبق وصفها ، ولكن بدلا من تزايد بنسبة 1 ، الزيادة بنسبة 10 أو 100...وبهذه الطريقة إذا كنت بحاجة إلى إعادة ترتيب الأولويات ، لديك بعض للمناورة بين المهام.

أود أن تعيين سوى عدد قليل من القيم (1..10) ثم الترتيب حسب الأولوية DESC, DateCreated ASC.إذا كنت بحاجة إلى أولويات مختلفة عن كل مهمة تحتاج إلى تحديث حيث الأولوية > xxx كما قلت.

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

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