سؤال

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

فيما يلي بعض الأفكار حول كيفية القيام بذلك، لكنني أشعر أنها ليست الأفضل وغير مكتملة في أحسن الأحوال.

  1. لدي نموذج منفصل يحتوي على:النموذج، المعرف المرتبط، الإجراء."منشور، 1، تم إنشاؤه" يمكن أن يكون مثالاً.

  2. احصل على 4 مصفوفات مختلفة، وقم بدمجها بالترتيب الصحيح على سبيل المثال created_at.

ما هي أفضل طريقة للقيام بذلك؟لقد قدمت مثالا أدناه:

alt text

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

المحلول

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

لنفترض أن هذا النموذج الجديد يسمى Feed، باتباع نمط الترابط متعدد الأشكال الذي ستستخدم فيه الأعمدة:Feedable_type وfeedable_id (كما هو مطبق على نموذج أسماء الأعمدة المقترح والمعرف المرتبط به)

لا بد لي من الاعتراف بأن مشكلتك أكبر من الفهم البسيط للارتباطات متعددة الأشكال، حيث تعد الخلاصات ابتكارًا رئيسيًا لتصميم المعلومات الحديث وتتضمن العديد من الميزات المعقدة بما في ذلك:

  • خصوصية
  • متابعة/اشتراك
  • الفلتره
  • دمج

كل هذا يمكن أن يصبح أكثر تعقيدًا اعتمادًا على أي من هذه السمات.وإذا كان عليك تلبية بعض المتطلبات غير الوظيفية مثل القياس والأداء، فسوف يتفاقم الصداع بسرعة.

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

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

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

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

أخيرًا، تعد دراسة المشاريع مفتوحة المصدر طريقة جيدة للتعلم

نصائح أخرى

قد ترغب في التحقق من البرنامج الإضافي timeline_fu للقضبان:

https://github.com/jamesgolick/timeline_fu

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