ما هي أفضل طريقة لتخزين الزيارات ؟

aymenayat

أنا أعمل على مشروع الأن ...

حسب المخطط الأولي للمشروع كنت أنوي تخزين الزيارات في قاعدة البيانات و لكن بعد التفكير المطول تأكدت أنها ستبطئ القاعدة كثيرا ...

هل من حل أخر ؟

لدي فكرة أخرى و أريد أن أستشيركم عنها ...

الفكرة :

تخزين الزيارات على هذا الشكل في الحقل الخاص بالمحتوي

visitor،visitor،visitor،visitor،visitor،

هل ستنفع ؟


التعليق السابق
  • ستقوم بعمل حقل لعدد الزيارات في جدول الموضوعات ويتم زيادته بمقدار واحد عند طلب عرض هذا الموضوع أي عند مشاهدته.

  • إذا أردت عدم تنفيذ إستعلام التعديل في كل مرة يتم فيها طلب الموضوع يمكنك إستخدام وسيط أخر أسرع للحفظ المؤقت لمدة زمنية معينة أو عدد معين كالملفات على سبيل المثال أو الذاكرة العشوئية RAM ولا أظن أن الأمر يتطلب هذا.

  • لسهولة التعامل مع الملفات يمكنك إستخدام أحد أنظمة الـ Cache لهذا الغرض، يمكنك إستخدام المكتبة التالية للغرض الذي تريده:

  • هذه المكتبة إستخدمها في عمل Cache للإستعلامات عموماً وليس فقط للحفظ المؤقت لعدد الزيارات.

قرأت عن تلك المكتبة و عرفت أنها من برمجتك :)... لكن لن تفتح على ما أضن المشكلة

  • 1: لأنني لا أريد تخزين الزيارات مؤقتاً ماذا لو لم يزر العضو الموقع مرة أخرى ما الحل ؟

  • 2: فكرتك لتغيير الحقل كل مرة أريد إضافة زيارة ... كيف أضمن أن الزائر لن يتم تسجيله مراتاً عدة ؟

هل علي تسجيل في جهاز الزائر انهو قد قام بزيارة هذه الصفحة ؟

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

  • المكتبة يمكن إستخدامها كبديل سهل للتعامل مع الملفات فضلاً عن إستخدامها لعمل Cache للإستعلامات من قاعدة البيانات.

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

  • في الحالة الأولى تستطيع فعلياً عدم السماح بإحتساب أكثر من مشاهدة واحدة للمستخدم، أما في الحالة الثانية فيتطلب الأمر إما ربط الزائر بالـ IP ، أو الجلسة أو إستخدام localStorge وجميع ما سبق يمكن تخطيه كتغيير الـIP أو الجلسة أو مسح بيانات الـ localStorge .

  • أنت لا تريد إنشاء جدول خاص للزيارات لا مشكله إستخدام الطريقة التي ذكرتها تفي بالغرض وهي فكرة جيدة جداً طالما ستسخدمها لحساب عدد الزيارات فقط، ويفضل أن تقوم بإنشاء حقل في نفس الجدول لهذا الغرض وقم بحفظ البيانات على شكل تنسيق JSON لتتعامل معه بسهوله وسيكون شكل البيانات كالتالي:

    [[ID,IP],[NULL,IP],[ID,IP],[NULL,IP]]
    

الـ ID هو معرف المستخدم يكون قيمته NULL على سبيل المثال في حالة أنه زائر، وبهذا تضمن عدم تكرار الزيارات للمستخدمين وعدم تكرارها لنفس الـ IP للزوار.

  • عند مشاهدة الموضوع سيتم التحقق من وجود IP مسجل مسبقاً سواء أكان لمستخدم أو زائر فإن تم إيجاده لا يتم إضافة مشاهدة وإن لم يتم إيجاده يتم التحقق من وجود معرف المستخدم ID فإن تم إيجاده لا يتم إضافة مشاهدة جديدة وإلا يتم إضافة مشاهدة جديدة كزائر.