PDA

View Full Version : حرفه ای: به نظر شما کار درستی که برای هر کاربر عضو شده یک table بسازیم؟



ab.ali
دوشنبه 13 مرداد 1393, 13:01 عصر
سلام، من یک برنامه دارم می سازم و کاربران عضو شده در برنامه می تونن اطلاعات وارد شده در انبارشون رو ثبت کنن، حالا یک مشکل دارم و اون اینه که اگر فقط یک table ایجاد کنم ، کالاهای ورودی دیگران هم برای دیگر کاربران نمایش داده می شه، حالا می خواستم بدونم کار درستیه که برای هر کاربر یک table ایجاد کنم و اطلاعاتشون رو اونجا ثبت بشه؟ اگر نه لطفا راه های پیشنهادیتون رو بگین.
ممنون:چشمک:

مهرداد سیف زاده
دوشنبه 13 مرداد 1393, 13:06 عصر
خوب برای اون کاربر id بزار و کالاهایی رو نشون بده که فقط مال همون id‌هست
البته حجم هم تاثیر داره. مثلا اگر هر کاربری قراره به میلیون رکورد کالا ثیت کنه اون وقت مدیریت و کويیری زدن روش سنگین مشه ولی اگر برای هر کاربر یک تیبل ساخته بشه فورا اطلاعات همون کاربر رو از تیبلش میخونه

ab.ali
دوشنبه 13 مرداد 1393, 13:17 عصر
ممنون از راهنمایی تون. من توی یک سایت خوندم که گفته بود اگر هم از table استفاده کنید ، مثلا اگز صد تا کاربر داشته باشیم، حجم می ره بالا، به نظر شما این حرف درسته؟

vahidqara
دوشنبه 13 مرداد 1393, 13:17 عصر
سلام و درود ..
واقعا مشکل خیلی از برنامه نویسان کشورم آشنا نبودن در بهینه سازی و بهینه کردن بانک اطلاعاتی هست....
به قوله دکتر رانکوهی افزونگی همیشه هست و کاریش نمیشه کرد ولی افزونگی داریم تا افزونگی و اگه کمتر بشه بسیار بهتره....
من یه مثال میزنم که دستتون بیاد البته با اجازه ی استاتید محترم.. :لبخندساده:

فرض کنید یه جدول داریم که تعداد رکوردهاش زیاد هست و هر بار بعد از اینکه کسی عضو شه یه کوئری بزنیم و ببینیم چند نفر عضو داریم ...
خوب میدونی چقدر هزینه داره این کوئری..
حالا روش بهینه ..
یه جدول دیگه میسازیم که اصن افزونگی هم نداره و یک فیلد تعداد کاربران بهش اضافه میشه و نقش counter داره هر بار کسی عضو شود یکی به این فیلد اضافنه میشه ..
حالا کوئری سبکی رو این جودل میزنیم و تعداد کاربران رو مشخص میکنیم به این سادگی عزیزان ... :لبخندساده:

koorosh4
دوشنبه 13 مرداد 1393, 13:18 عصر
البته دوستمون درست میفرمایند میشه همه را توی یک بانک ذخیره کرد و هر کاربر را با کالاهاش موقع فراخوانی جدا جدا کوئری گرفت . اما به نظر من اگه جدول جدا باشه مطمئن تر و دسترسی راحت تره . شاید شما یک میلیون کاربر داشته باشید و برای اونا مجبور بشید یک میلیون جدول ایجاد کنید اما برای حذف هر کاربر راحت میتونید جدولشم همراهش حذف کنید و یا پرینت گرفتن ازش و خیلی کارهای دیگه ... فکر میکنم راحت تر باشه . این پیشنهاد منه شاید اشتباه باشه(توجه نکرده بودم . بخش حرفه ای هست و من مبتدی)

ab.ali
دوشنبه 13 مرداد 1393, 13:28 عصر
ممنون از همه دوستان.:چشمک:

abolfazl-z
سه شنبه 14 مرداد 1393, 00:13 صبح
هیچ تاثیری در پرفرمنس ندارد مگر اینکه حجم داده هایتون و دسترسی به آن ها چطوری باشه !

http://stackoverflow.com/questions/696682/mysql-many-tables-or-many-databases

ashokri.nll
سه شنبه 14 مرداد 1393, 00:31 صبح
شما باید یک جدول داشته باشی با foreinkey تا کالا ها رو نمایش بدی راه ساده و عملی فقط اینه