نمایش نتایج: از شماره 1 تا 6 , از مجموع 6

موضوع: راهنمایی در مورد طراحی دیتابیس

  1. #1
    عضو جدید
    تاریخ عضویت
    Oct 2011
    نوشته ها
    10
    تشکر تشکر کرده 
    8
    تشکر تشکر شده 
    0
    تشکر شده در
    0 پست

    پیش فرض راهنمایی در مورد طراحی دیتابیس

    سلام
    بنده در حال طراحی یک سیستم هستم با زیان php
    در قسمت طراحی دیتابیسش برام شک به وجود اومده
    بنده یدونه تیبل posts خواهم داشت و در هر ردیف از هر پست میخوام آیدی کاربرانی که به این پست لایک دادند رو در یک ستون با نام liked_users به صورتی که ایدی کاربران با "," جدا بشه در اون سیو کنم
    به اینصورت:
    (تیبل posts)
    date liked_users content id
    2342352424 123,324,2345,24,2342,234,2342 salam 12






    1-من با استفاده از concat در هر مرحله کاربر جدید رو اضافه میکنم به liked_users آیا این کار درستی هست؟
    2-آیا ممکنه اطلاعات به صورت کامل ذخیره نشه-حتی اگه سیستم timed out بشه؟


    و یک سوال دیگر:
    اگه بخوام به جای این کار یدونه تیبل با نام liked_users باز کنم به صورت زیر:

    (تیبل liked_users):
    like_type user_id post_id
    like 324 12
    dislike 123 12
    dislike 2342 12
    like 2345 12



    یعنی به صورتی که برای لایک هر شخص یک ردیف ایجاد بشه
    3-آیا این مدلی فشار زیاد میشه؟

    4- بالای چه تعداد ردیف برای یک تیبل فشار به سرور فشار میاره؟
    5-آیا روش مشخصی برای محاسبه فشار هست؟
    6- برنامه ای برای طراحی دیتابیس وجود داره خوب باشه؟
    باتشکر

  2. # ADS




     

  3. #2
    عضو انجمن be099 آواتار ها
    تاریخ عضویت
    May 2009
    محل سکونت
    ﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽﷽
    نوشته ها
    338
    تشکر تشکر کرده 
    176
    تشکر تشکر شده 
    651
    تشکر شده در
    385 پست

    پیش فرض پاسخ : راهنمایی در مورد طراحی دیتابیس

    نقل قول نوشته اصلی توسط tik20 نمایش پست ها
    سلام
    بنده در حال طراحی یک سیستم هستم با زیان php
    در قسمت طراحی دیتابیسش برام شک به وجود اومده
    بنده یدونه تیبل posts خواهم داشت و در هر ردیف از هر پست میخوام آیدی کاربرانی که به این پست لایک دادند رو در یک ستون با نام liked_users به صورتی که ایدی کاربران با "," جدا بشه در اون سیو کنم
    به اینصورت:
    (تیبل posts)
    date liked_users content id
    2342352424 123,324,2345,24,2342,234,2342 salam 12






    1-من با استفاده از concat در هر مرحله کاربر جدید رو اضافه میکنم به liked_users آیا این کار درستی هست؟
    2-آیا ممکنه اطلاعات به صورت کامل ذخیره نشه-حتی اگه سیستم timed out بشه؟


    و یک سوال دیگر:
    اگه بخوام به جای این کار یدونه تیبل با نام liked_users باز کنم به صورت زیر:

    (تیبل liked_users):
    like_type user_id post_id
    like 324 12
    dislike 123 12
    dislike 2342 12
    like 2345 12



    یعنی به صورتی که برای لایک هر شخص یک ردیف ایجاد بشه
    3-آیا این مدلی فشار زیاد میشه؟

    4- بالای چه تعداد ردیف برای یک تیبل فشار به سرور فشار میاره؟
    5-آیا روش مشخصی برای محاسبه فشار هست؟
    6- برنامه ای برای طراحی دیتابیس وجود داره خوب باشه؟
    باتشکر
    مورد اولی در صورتی که تعداد لایک ها و همچنین طول رشته ی یوزر آی دی ها زیاد بشه قطعا به مشکل میخوره همچنین برای سایر محاسبات در آینده به مشکل میخورید
    مثلا اینکه بخواید تعداد پست های لایک شده ی یک یوزرو پیدا کنید باید کل تیبل جستجو بشه + توابع کار با رشته ها در php هم باید درگیر بشه پس مورد اول کاملا منتفی میشه

    پس قطعا باید از مورد دوم استفاده کنید و همچنین اینکس روی فیلد های پست و یوزر آیدی فراموش نشه
    فشار هم اینطور بهتون بگم که اگر تعداد رکورد ها به یک میلیون هم برسه با یک cpu تک هسته ای ، کوئری پیدا کردن لایک های یک پست چیزی کمتر از 0.01 ثانیه میشه حتی اگه تیبل از نوع myisam باشه
    mysql چیزی فراتر از اونیه که خیلیا فکرشو میکنن

  4. تعداد تشکر ها ازbe099 به دلیل پست مفید


  5. #3
    عضو جدید
    تاریخ عضویت
    Oct 2011
    نوشته ها
    10
    تشکر تشکر کرده 
    8
    تشکر تشکر شده 
    0
    تشکر شده در
    0 پست

    پیش فرض پاسخ : راهنمایی در مورد طراحی دیتابیس

    نقل قول نوشته اصلی توسط be099 نمایش پست ها
    مورد اولی در صورتی که تعداد لایک ها و همچنین طول رشته ی یوزر آی دی ها زیاد بشه قطعا به مشکل میخوره همچنین برای سایر محاسبات در آینده به مشکل میخورید
    مثلا اینکه بخواید تعداد پست های لایک شده ی یک یوزرو پیدا کنید باید کل تیبل جستجو بشه + توابع کار با رشته ها در php هم باید درگیر بشه پس مورد اول کاملا منتفی میشه

    پس قطعا باید از مورد دوم استفاده کنید و همچنین اینکس روی فیلد های پست و یوزر آیدی فراموش نشه
    فشار هم اینطور بهتون بگم که اگر تعداد رکورد ها به یک میلیون هم برسه با یک cpu تک هسته ای ، کوئری پیدا کردن لایک های یک پست چیزی کمتر از 0.01 ثانیه میشه حتی اگه تیبل از نوع myisam باشه
    mysql چیزی فراتر از اونیه که خیلیا فکرشو میکنن
    واقعا ممنون از راهنماییتون
    آیا روش دیگری هست که مناسبتر باشه؟

  6. #4
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : راهنمایی در مورد طراحی دیتابیس

    سلام، حالا ما که sql داریم بیایم کار ها را بسپاریم به او و از عملگر و دستورات sql استفاده کنیم که نیاز نباشد برای اکسپلود کردن و ساخت آرایه مموری را هدر دهیم، پس یک تیبیل جدا بسازید همراه با ریلشن و اونجا ذخیره کنید به تایین دیتا تایپ ها و استراکچری هم که میسازید دقت کنید که در آینده و در صورت سنگین شدن دیتابیس نتیجه عکس ندهد، اگر کاربر فقط یک کوئری دیتابیس دارد پس هربار کانکت کردن منطقی است در غیراین صورت شی ساخته شده از کانکت را در پراپرتی ای ذخیره و در دفعات بعد هم ازش استفاده کنید پیشنهاد میشود از کلاس های آماده mysql استفاده کنید.

    2-آیا ممکنه اطلاعات به صورت کامل ذخیره نشه-حتی اگه سیستم timed out بشه؟
    بله ممکن است اگر هنگام ارسال کوئری، دیتابیس ما از دسترس خارج شود اطلاعاتی ذخیره نخواهد شد.

    3-آیا این مدلی فشار زیاد میشه؟

    4- بالای چه تعداد ردیف برای یک تیبل فشار به سرور فشار میاره؟
    بستگی به ساختار دیتابیس و دیتا تایپ و حجم اشغال شده دارد نمیشود یک عدد ثابت اعلام کرد.

    میتوانید از SHOW FULL PROCESSLIST استفاده کنید در command برای مانیتور هر query

    بگردید ساختار دیتابیس مدیریت محتوا های معروف را مشاهده کنید ببینید آنها از چه استراکچری استفاده کردند که کمک بزرگی به شما میکند.

  7. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  8. #5
    عضو انجمن
    تاریخ عضویت
    Dec 2010
    محل سکونت
    تبريز
    نوشته ها
    686
    تشکر تشکر کرده 
    391
    تشکر تشکر شده 
    573
    تشکر شده در
    427 پست

    پیش فرض پاسخ : راهنمایی در مورد طراحی دیتابیس

    بجای like , dislike هم از صفر و یک استفاده کنید
    در ضمن وقتی می خواهید پستی رو دیس لایک کنید اگه قبلا لایک داشته دیگه دوباره دیس لایک ثبن نکنید همون رو آپدیت کنید !

  9. #6
    عضو انجمن miladtnt آواتار ها
    تاریخ عضویت
    Mar 2016
    محل سکونت
    TabriZ
    نوشته ها
    247
    تشکر تشکر کرده 
    219
    تشکر تشکر شده 
    376
    تشکر شده در
    275 پست

    پیش فرض پاسخ : راهنمایی در مورد طراحی دیتابیس

    نقل قول نوشته اصلی توسط tik20 نمایش پست ها
    سلام
    بنده در حال طراحی یک سیستم هستم با زیان php
    در قسمت طراحی دیتابیسش برام شک به وجود اومده
    بنده یدونه تیبل posts خواهم داشت و در هر ردیف از هر پست میخوام آیدی کاربرانی که به این پست لایک دادند رو در یک ستون با نام liked_users به صورتی که ایدی کاربران با "," جدا بشه در اون سیو کنم
    به اینصورت:
    (تیبل posts)
    date liked_users content id
    2342352424 123,324,2345,24,2342,234,2342 salam 12






    1-من با استفاده از concat در هر مرحله کاربر جدید رو اضافه میکنم به liked_users آیا این کار درستی هست؟
    2-آیا ممکنه اطلاعات به صورت کامل ذخیره نشه-حتی اگه سیستم timed out بشه؟


    و یک سوال دیگر:
    اگه بخوام به جای این کار یدونه تیبل با نام liked_users باز کنم به صورت زیر:

    (تیبل liked_users):
    like_type user_id post_id
    like 324 12
    dislike 123 12
    dislike 2342 12
    like 2345 12



    یعنی به صورتی که برای لایک هر شخص یک ردیف ایجاد بشه
    3-آیا این مدلی فشار زیاد میشه؟

    4- بالای چه تعداد ردیف برای یک تیبل فشار به سرور فشار میاره؟
    5-آیا روش مشخصی برای محاسبه فشار هست؟
    6- برنامه ای برای طراحی دیتابیس وجود داره خوب باشه؟
    باتشکر
    من روش اول رو توصیه میکنم منتها از
    json_encode استفاده میکنم و بهتر بم جواب داده !

    و اینکه بخواین بعدا تعداد اینا بشمارین باز بهترین روشش اینه ک از الان یه شمارنده بزارین تا تعداد بشماره

    روش دوم رو بهتون وقتی توصیه میکنم که هاستتون کیفیت بالا باشه و محدود نباشه در این صورت صد در صد بهتر هست

  10. تعداد تشکر ها ازmiladtnt به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. راهنمایی در منطق طراحی دیتابیس
    توسط keyhan7 در انجمن PHP-MySQL
    پاسخ ها: 5
    آخرين نوشته: December 2nd, 2017, 19:36
  2. پاسخ ها: 3
    آخرين نوشته: September 26th, 2017, 00:34
  3. راهنمایی در مورد دیتابیس
    توسط mahmoodsoft در انجمن سوالات و مشکلات
    پاسخ ها: 5
    آخرين نوشته: March 8th, 2016, 11:51
  4. راهنمایی در مورد بکاپ گیری از دیتابیس با اسم های مختلف
    توسط mojtaba127 در انجمن سوالات و مشکلات
    پاسخ ها: 0
    آخرين نوشته: December 10th, 2014, 11:41
  5. پاسخ ها: 10
    آخرين نوشته: July 22nd, 2014, 11:13

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •