كيف اسوي نظام اشعارات في الموقع

احمد • منذ 5 سنوات

السلام عليكم ورحمة الله وبركاته 

 

كيف اسوي نظام اشعارات مثل الى في هاذا الموقع الى على شكل جرس يعني اي شخص يشارك ي موضوعي يجيله اشعار زي الجرس فوق 

 

حقول الجدول كم حقل وكتابة الاكواد عباره عن شروط او ايش بالضبط 

 

وهل نظام اشعارات صندوق الرسائل يتبرمج بنفس طريقة الاشعارات فوق يعني لو سويت اشعارات خاصة بالرسائل الخاصة في الموقع يتبرمج بنفس الطريقة 

كلمات دليلية: mysql php

الإجابة الصحيحة

Ali Majrashi • منذ 5 سنوات

وعليكم السلام ورحمة الله وبركاته 

آلية الاشعارات بموقع عالم البرمجة جدا بسيطه زي ماذكر عمار تحتاج جدول بقاعدة البيانات يحتوي المعلومات تقدر تعمل جدول بسيط يحتوي على

  • id
  • type
  • user_id
  • data
  • read_at
  • created_at
  • updated_at

الجدول بسيط يحتوي على id وهو auto increment يزيد العدد مع كل record ينحفظ بالجدول 

النوع type تخزن فيه نوع الاشعار هل هو رد مقال جديد تحديث مقال الخ 

حقل user_id يخزن فيه id تبع user المرسل له الاشعار

حقل data يكون عباره عن json نخزن فيه كل البيانات مثل عنوان المقال و id ولمن او الرد كان على اي مقال ولمن التعليق نستخدم هذه البيانات عند عرض الاشعار للمستخدم

حقل read_at وهو تاريخ متى قرأ المستخدم الاشعار 

حقل created_at تاريخ متى تم انشاء الاشعار وحقل updated_at تاريخ متى تم تحديثه آخر مره 

طبعا تختلف الجداول وطريقتها من مشروع وانت تقدر تنشئ المناسب لك 

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

طبعا في عالم البرمجة نستخدم Laravel وهي سهلتها لنا بحيث تعطيك الاداوات والطرق لتنفيذها بكل سهولة حتى الجدول لارافيل توفره لنا عدلنا عليه تعديل طفيف ليناسبنا حاولت اعطيك مثال واشرحه لايصال المعلومه

https://laravel.com/docs/5.7/notifications#introduction

 

الإجابات (2)

عمار الخوالدة • منذ 5 سنوات

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


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

إن كانت الإجابة نعم، فهنا أنت تحتاج إلى اتصال مع السيرفر، بحيث يرسل السيرفر إشعارا للمستخدم عندما يحصل أمر ما، وذلك اما بطلب بيانات الاشعارات بشكل مستمر من السيرفر كل فترة معينة ( وهذا الحل غير عملي )، او عمل اتصال websocket لارسال الاشعارات، أو استخدام long polling، بحيث تتصل بالسيرفر لمرة واحدة وتنتظر أن يرسل لك أي شيء جديد ( وهذه الطريقة تستهلك الكثير من موارد السيرفر )، أو استخدام خاصية Server Push الموجودة في HTTP2،  ويمكن ايضا استخدام بعض الخدمات الجاهزة للاتصال مثل pusher ( والتي تستخدم في الواقع websocket، لكن لا حاجة لتجهيز سيرفر ال websocket على سيرفرك الخاص ).

 

الطرق والأساليب كثيرة، وهذا يعتمد على طريقة المشروع وطريقة تفكيرك كمبرمج وطريقة بنائك مع المشروع، لا توجد طريقة يمكن أن نقول أنها الأفضل. 

احمد: انا ما اعرف اسزيه اساسا يعني حقول الجدول كم حقل مثلا وربطها كيف يتم

عمار الخوالدة: ادرس قواعد البيانات، عدم معرفة طريقة عملها يعني عدم فهم قواعد البيانات بشكل جيد

احمد: درستها بس مفهوم وآلية الاشعارات ما فهمتها

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

Ali Majrashi • منذ 5 سنوات
الإجابة الصحيحة

وعليكم السلام ورحمة الله وبركاته 

آلية الاشعارات بموقع عالم البرمجة جدا بسيطه زي ماذكر عمار تحتاج جدول بقاعدة البيانات يحتوي المعلومات تقدر تعمل جدول بسيط يحتوي على

  • id
  • type
  • user_id
  • data
  • read_at
  • created_at
  • updated_at

الجدول بسيط يحتوي على id وهو auto increment يزيد العدد مع كل record ينحفظ بالجدول 

النوع type تخزن فيه نوع الاشعار هل هو رد مقال جديد تحديث مقال الخ 

حقل user_id يخزن فيه id تبع user المرسل له الاشعار

حقل data يكون عباره عن json نخزن فيه كل البيانات مثل عنوان المقال و id ولمن او الرد كان على اي مقال ولمن التعليق نستخدم هذه البيانات عند عرض الاشعار للمستخدم

حقل read_at وهو تاريخ متى قرأ المستخدم الاشعار 

حقل created_at تاريخ متى تم انشاء الاشعار وحقل updated_at تاريخ متى تم تحديثه آخر مره 

طبعا تختلف الجداول وطريقتها من مشروع وانت تقدر تنشئ المناسب لك 

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

طبعا في عالم البرمجة نستخدم Laravel وهي سهلتها لنا بحيث تعطيك الاداوات والطرق لتنفيذها بكل سهولة حتى الجدول لارافيل توفره لنا عدلنا عليه تعديل طفيف ليناسبنا حاولت اعطيك مثال واشرحه لايصال المعلومه

https://laravel.com/docs/5.7/notifications#introduction

 

احمد: شكرا من القلب

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !