آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تفاوت در ذخیره اطلاعات کاربر در جدول جدا

هادی اکبرزاده  6 سال پیش  6 سال پیش
+1 0

سلام؛ اول بگم که سوالم به وردپرس ربطی نداره بلکه به شیوه طراحی دیتابیس ربط داره که وردپرس یه مثاله و توضیح میدم

اگه به دیتابیس وردپرس بریم میبینیم یه جدول به اسم wp_users هس که توش اطلاعات پایه مثل ایمیل و پسورد و آدرس وبلاگ و اینا قرار دارن ولی این وردپرس اومده یه جدول دیگم به اسم wp_usermeta تعریف کرده که سه ستون "آیدی کاربر"، "نام متغیر" و "مقدار متغیر" داره و حالا برای مثال یه متغیر به اسم first_name رو برای کاربر 1 تعریف میکنه و نام طرف رو تو این نگه میداره... برای last_name هم به همین صورت و ...

و حالا اگه کاربر مثلا نام خانوادگیشو ثبت نکنه، کلید last_name تو جدول متاها ایجاد نشده... و بعدا که بیاد ثبت کنه، چون کاربرای دیگه چیزای خودشونو ثبت کردن در نتیجه ممکنه هزار سطر پایین تر از سطر مربوط به first_name ثبت بشه

حالا سوالم اینه چرا تو همون جدول wp_users نگه نمیداره؟! مگه فرقی از لحاظ پرفورمنس داره؟! اینکه ستون زیاد باشه بده یا اینکه از اون جدول متا آیدی یوزر رو سلکت کنه و کلیدارو از توش بکشه بیرون؟!

واسه وب سرویس رست فول کدومش خوبه به نظرتون؟!

+1 0
ببین دوست من ما در دیتابیس موجودیت داریم یعنی کاربر یک موجودیت هست و متا هم همینطور که توسط یک کلید متصل هست به جدول کاربر ما می توانیم برای جدول کاربر صد ها ستون رو بزاریم اما خب اولا در توسعه دیتابیس در آینده مشکلاتی پدید میاد و در مرحله بعد هم در زمان فراخوانی و جستجو اگر موجودیت ها جدا باشن بهتر هست به خصوص در مورد وردپرس و امثال اون که هزاران افزونه و غیره براش ساخته میشه (6 سال پیش)
+1 0
این مورد برای ماژولار بودن هست و پرفورمنس کم تری داره نسبت به یک جدول البته اگه مشخصات کاربران زیاده و زیاد بهش رجوع نمیشه و به بقیه مشخصات زیاد رجوع میشه بهتره یه جدول دیگه بسازی و با هم join بشن. اما این مورد که وردپرس انجام میده و برای هر ویژگی یه سطر میسازه پرفورمنس کمتری داره مخصوصیا وقتی بخاید همه‌ ویژگی های یک کاربر رو بدست بیارید و این کار برای ماژولار بودن هست که بدون تغیر در اسکیما دیتابیس بشه مقادیر رو اضافه کرد. (6 سال پیش)
+1 0
منم دقیقا چند تا فیلد جدید نوشته بودم توی یه افزونه‌ای تا به پروفایل کاربرا اضافه شه که رفتم دیدم تو جدولش نیستو توی متاهاس... گفتم دیگه لابد به خاطر داینامیک بودنش این کارو کرده تا اگه افزونه‌ای چیزی اضافه می‌کنه تو این‌جا بیاد و دیگه ستونی براش ساخته نشه؛ ولی دغدغم رو پرفورمنسش بود و همونطور که شما دوستان عزیز هم گفتین پرفورمنس متا باید کمتر باشه چون اگه کاربر پروفایلشو ادیت بزنه و اطلاعات جدیدی وارد کنه، چندین تا insert صورت می‌گیره تا همشون سیو شن و موقع خوندن هم به همین صورته که باید کلی ریکورد رو بکشه بیرون! در کل با توضیح شما هم خیالم راحت شد. منم داشتم تایید شماره تلفن با کد ارسالی از طریق اس ام اس رو می‌نوشتم که برام قابل قبول نبود تا چیزایی مثل دفعات ارسال مجدد کد (ریسند)، اشتباهات، تایم ارسال، ارسال بعدی و خود کد رو تو خود جدول یوزر بنویسم و به خاطر همین فقط تایید بودن یا نبودن رو تو خود یوزر نوشته بودم تا الکی بقیه هم لود نشن. (6 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .