💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ amir tavakolian
انتخاب درست برای ذخیره سازی اطلاعات جانبی کاربر در دیتابیس چیست؟
لقمان آوند حل شده توسط لقمان آوند

سلام دوستان 
برای ذخیره کردن شماره تماس و آدرس شبکه اجتماعی افرادی که در سایت ثبت نام میکنند؛ اگه یک نفر بیشتر از یک شماره تماس و شبکه اجتماعی داشته باشه؛ به نظرتون بصورت json   در دیتابیس ذخیره بشن   یا در یک جدول جدا و بعد join زده بشه ؟

 

البته فقط ۴ آدرس شبکه اجتماعی میشه وارد کرد و احتمال اینکه کاربر؛ فقط یک یا دو مورد رو پر کنه و بقیه خالی بمونند هستش. 

 

به نظر خودم؛ زمانی که احتمال تکرار بالا هستش؛ بهتره که از ۲ جدول استفاده

 برای مثال؛ پروژه اشتراک لینک که تکرار زیاد صورت میگیره از ۲ جدول استفاده شده ولی زمانی که قراره آدرس شبکه‌های اجتماعی بیشتر از ۴تا نشه؛ به فرمت json در دیتابیس ذخیره بشه بهتره و اینطوری هزینه join‌ها حذف میشه.

 

اگر که تعداد این موارد کم و ثابت هست که می‌تونید اونها رو در خود جدول users به صورت ستون اضافه کنید.

در غیر این صورت می‌تونید شبیه وردپرس کار کنید. یه جدول به اسم users_meta بسازید که اطلاعات اضافی یوزرها رو داخل اون اضافه کنید.

جدول متا می‌تونه ستون‌ها id,user_id,key,value رو داشته باشه.

بعد به جای join زدن با دو تاکوئری مستقل اطلاعات و متاهای یوزر رو بگیرید.

یه کوئری میزنید از جدول یوزر اطلاعتش رو می‌گیرید. بعد یه کوئری میزنید به جدول یوزرمتا و همه key,value‌های اون یوزر رو می‌گیرید.

ستون key نوع داده ذخیره شده رو مشخص می‌کنه و value مقدارش رو.

مثلا key می‌تونه instagram باشه و value آیدی اینستاگرام کاربر ...

بهترین پاسخ
لقمان آوند ۰۴ فروردین ۱۳۹۹، ۱۸:۵۲