سؤال

هذه مشكلتي:أنا بحاجة إلى تخزين الكثير من سجل الرسائل و اعتقد انه سيكون الذكية إلى الاحتفاظ بها في قاعدة بيانات SQLite3 أن تكون قادرة على البحث و تصفية بسهولة.

لقد عرض سجل الرسائل في قائمة موحدة القطعة (باستخدام wxWidgets).قائمة من عدة أعمدة يمكن فرزها وتصفيتها من قبل المستخدم.

الآن أنا لست متأكدا ما هي أفضل طريقة للتعامل مع هذا.أنا أفكر في بعض الحلول الممكنة:

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

ولكن في الحقيقة أنا لست معتادة على العمل مع هذا النوع من المشاكل, لذلك أي نصائح هي موضع تقدير!

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

المحلول

كيف حول استخدام ترقيم الصفحات?

SELECT *
FROM logs
WHERE ...
ORDER BY ...
LIMIT offset, count

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

نصائح أخرى

بدأت في كتابة هذا التعليق إلى نادية الجواب ، ولكن بدأت الثرثرة و حصلت طويلة جدا :)

نضع في اعتبارنا أن عدد إدخالات سجل يحصل كبيرة جدا, شريط التمرير يصبح عديم الفائدة.أصغر الحركة في التمرير ينتهي تتحرك من خلال قائمة بشكل كبير.أن يجعل عملي للمستخدم استخدام البحث في القائمة.

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

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