سؤال

سأفعل خدمة الويب المدونات الصغيرة (للمدرسة، لذلك لا تفجرني لعدم وجود فكرة جديدة) وقلق أن DB قد يكون حلا بذاتها (يمكن للمستخدم متابعة المستخدمين الآخرين أو حتى العلامة حتى أضع ذلك SELECT ستكون ثقيلة - تحقق من 20 أحدث الرسائل التي تحتوي على جميع علامات المراقبة والمستخدمين).

فكرتي هي إنشاء جدول آخر، وتخزينها فقط StatusID و UserID (من يجب أن تلتقط رسالة). خطر ذلك، إذا كان لدى بعض العلامات أو المستخدم العديد من المتابعين، فستكون هناك الكثير من السجلات مع معرف الحالة هذا. إذن، هل هي فكرة جيدة؟ أو ربما أفضل استخدام M2M العلاقة؟ (حالة واحدة -> العديد من أجهزة الاستقبال)

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

المحلول

أعتقد أن معظم قواعد البيانات يمكن بسهولة التعامل مع مجموعات سجل كبيرة. تقع مسؤولية الحصول على تشكيلها في تصميمك مع إعداد الفهارس بشكل صحيح. إذا قمت بإنشاء الفهارس المناسبة، يجب أن تؤدي الجمل المحددة بشكل جيد حقا.

نصائح أخرى

سأذهب مع المستخدمين الجدول، وهو جدول لديه علاقة M2M بين المستخدمين و رسائل جدول.

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

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

عند تنفيذ collabinate (http://www.collabinate.com.)، محرك يعمل بنظام الخدمة في المدونات الصغيرة وتدفقات النشاط المشتركة، استخدمت قاعدة بيانات الرسم البياني. حقيقة أن الناس يخلقون المشاركات واتبع الآخرين يضفيون نفسها بنية الرسم البياني. مع العلاقات الصحيحة والخوارزميات، يمكن أن يكون هذا حلا فعالا للغاية وأداء.

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