PDA

View Full Version : پیاده سازی لایک بدون دیتابیس



ayub_coder
چهارشنبه 21 تیر 1391, 17:06 عصر
با سلام
من چندین صفحه دارم(شاید چندصد صفحه بشن) که باید برای اونا عمل لایک رو پیاده سازی کنم. ولی دیتابیس ندارم و باید با فایل یا چیز دیگه پیاده سازی بشه.
دوستان چه نظری دارن؟ چیزی که به نظرم میرسه اینه که برای هر صفحه یه فایل تکست بسازم و لایک هر صفحه رو توش ذخیره کنم.ولی اینجوری تعداد صفحات اگه زیاد بشه تعداد فایلها هم زیاد میشه. به نظرتو مشکلی پیش نمیاد؟

s.ehsantaher
چهارشنبه 21 تیر 1391, 19:44 عصر
این لایک فقط اضافه شدن یه عدده یا می خوای اطلاعات کاربر و ساعت و تاریخ رو هم ذخیره کنی؟؟

plague
چهارشنبه 21 تیر 1391, 21:44 عصر
بدون دیتابیس که سخت میشه
میتونی اطلاعات لایک ها ی هر صفحه رو توی یک خط بزاری
ابتدای خط با آیدی اون صفحه شروع بشه و یه جدا کننده بعد از اون باشه و بعد تعداد لایک ها تا اون لحظه
بعد از اون یه جدا کننده دیگه باشه
بعد از اون جداکننده دوم آیپی کسانی که لایک کردن

مثلا اینجوری میشه


1@3@12.12.12.12.#222.22.22.2.#4.3.55.66
آیدی صفحه 1
تعداد لایک ها 3
و بعدش هم آیپی هایی که رای دادن

کاره خیلی پردردسریه بدون دیتابیس

ayub_coder
چهارشنبه 21 تیر 1391, 22:26 عصر
فقط شماره باشه هم کفایت می کنه
ولی اگه تو یک فایل بذاریم مجبوریم جستجوی خطی انجام بدیم.هر بار که لایک میشه فایل باز بشه. شماره صفحه پیدا بشه. مقدارش خونده بشه یکی بهش اضافه بشه دوباره در همون مکان قبلی نوشته شه. به نظرتون اینکار لود سیستم رو زیاد نمی کنه؟
اگه واسه هر صفحه یه فایل جدا درست کنم به نظرتون بهتر نیست؟ فکر کنم حجم درخواست کاهش پیدا کنه . فقط تعداد فایلها زیاد میشن.

Unique
چهارشنبه 21 تیر 1391, 22:35 عصر
راستش من نمیدونم چطوری میخوای تعداد لایک ها را بشماری و مطئن باشی کسی بیش از یک بار لایک نداده !
استفاده از ip زیاد جالب نیست اما خوب بد هم نیست ! با cookie هم میتونی ست کنی چون خیلی از کاربرا نمیدونن چطور cookie ها را پاک کنند ! اینها در صورتی هست که قرار نیست کسی عضو بشه!
با فایل میتونی این کار را انجام بدی ولی هی باید فایل را parse کنی تا به اطلاعاتت بگردی !
شما میگی صد تا صفحه ! اگه 10 تا بازدید از هر صفحه در روز باشه میشه 1000 تا ثبت ! به نظر من توی یک فایل ذخیره نکن و برای هر کدوم یک فایل در نظر بگیر و اطلاعات هر کاربر که لایک را میزنه توی یک سطر ذخیره کن ! اینطوری کافیه تعداد خطوط فایل را بشماری تا تعداد لایک ها را گیر بیاری ! برای Parse کردن هم بهتره !

کلا تمیز سوالت را نپرسیدی برای همین هر کسی یه جور جواب میده ! من پیشنهاد میکنم برو سراغ sqlite ! اینجوری هم فایل هست و هم دیتابیس و میتونی راحت query بدی ! یکم یاد گرفتنش اذیت میشی چون باید با pdo پیادش کنی ! اما خیلی تر و تمیز در میاد.

ayub_coder
پنج شنبه 22 تیر 1391, 01:06 صبح
می دونی واسه چی از فایل می خوام استفاده کنم. چون این پروژه به صورت قالب ارائه میشه. و ممکنه سرور کسی که این قالب رو میگیره دیتابیس ساپورت نکنه.و فقط PHP رو ساپورت کنه. می خوام کاربر هیچ کانفیگی انجام نده. و فقط با آپلود کردن قالب همه ی بخش هاش کارکنه.
واسه همین می خوام از فایل استفاده کنم.
حالا نتیجه گیری این شد دیگه:: برای هر صفحه یه فایل بسازم و برای هر لایک یه سطر بهش اضافه کنم. آخر سر هم سطرها رو بشمارم . برای جلوگیری از دوباره لایک کردن همون کوکی کفایت می کنه.!

s.ehsantaher
پنج شنبه 22 تیر 1391, 13:07 عصر
می دونی واسه چی از فایل می خوام استفاده کنم. چون این پروژه به صورت قالب ارائه میشه. و ممکنه سرور کسی که این قالب رو میگیره دیتابیس ساپورت نکنه.و فقط PHP رو ساپورت کنه. می خوام کاربر هیچ کانفیگی انجام نده. و فقط با آپلود کردن قالب همه ی بخش هاش کارکنه.
واسه همین می خوام از فایل استفاده کنم.
حالا نتیجه گیری این شد دیگه:: برای هر صفحه یه فایل بسازم و برای هر لایک یه سطر بهش اضافه کنم. آخر سر هم سطرها رو بشمارم . برای جلوگیری از دوباره لایک کردن همون کوکی کفایت می کنه.!

البته این راه عاقلانه ای برای این کار و جلوگیری از دوبار لایک کردن نیست. اما اگه کارتو راه می اندازه که هیچی.
اگه نمی خوای اطلاعاتی از کاربرا ذخیره کنی اصلا لازم نیست یک سطر به اون فایله اضافه کنی. اگه تعداد لایک ها رو توی اون فایل ذخیره کنی و هربار اون عدد رو بخونی به سرعت بیشتری می رسی.
بعد از هر لایک هم مقدار قبلی فایل رو +1 می کنی و ...

ayub_coder
پنج شنبه 22 تیر 1391, 13:14 عصر
اگه بدون کوکی هم بخوام اینکارو کنم می تونم USER Agent و IP اون رو بگیرم MD5 کنم و به عنوان یه لایک رو تو یه سطر بنویسم. بعد هر بار که لایک می خوره فایل رو چک می کنم که اون MD5 تو فایل هست یا نه. اگه نبود لایک میشه یه سطر به فایل اضافه میشه. به نظرم اینطوری هم بهتر باشه :متفکر:

ayub_coder
پنج شنبه 22 تیر 1391, 19:56 عصر
با SQLite پیاده سازی کردم. دست همگی درد نکنه