الگوی Profile model
تا حالا به این مشکل برخوردید که توی پروژهتون دو نوع کاربر دارید؟ مثلاً «خریدار» و «فروشنده»؟
خریدار فقط نام و ایمیل داره، اما فروشنده کلی اطلاعات اضافه مثل «نام فروشگاه»، «آدرس» و «شماره صنفی» هم داره.
اینجا چند تا راه به ذهن میاد:
راه حل بد: همهی فیلدها رو توی یک مدل User بریزیم (که برای خریدارها کلی فیلد NULL و خالی ایجاد میکنه و مدل رو شلوغ میکنه).
راه حل پیچیده: برای هر کدوم یک مدل User جدا بسازیم(که مدیریت احراز هویت و دسترسیهارو سختش می کنه)
الگوی پروفایل (Profile Model Pattern)
یک مدل User مرکزی داشته باشید: این مدل فقط مسئول اطلاعات مشترک و احراز هویته (نام کاربری، ایمیل، پسورد و ...)
یک مدل Profile جدا بسازید: برای اطلاعات اضافی، یک مدل جدید (مثلا SellerProfile) بسازید و تمام فیلدهای مخصوص فروشنده رو داخل اون قرار بدید.
با OneToOneField وصلشون کنید: این دو مدل رو با یک رابطه یک-به-یک به هم متصل کنید.
#profile_model_pattern
@Syntax_fa
تا حالا به این مشکل برخوردید که توی پروژهتون دو نوع کاربر دارید؟ مثلاً «خریدار» و «فروشنده»؟
خریدار فقط نام و ایمیل داره، اما فروشنده کلی اطلاعات اضافه مثل «نام فروشگاه»، «آدرس» و «شماره صنفی» هم داره.
اینجا چند تا راه به ذهن میاد:
راه حل بد: همهی فیلدها رو توی یک مدل User بریزیم (که برای خریدارها کلی فیلد NULL و خالی ایجاد میکنه و مدل رو شلوغ میکنه).
راه حل پیچیده: برای هر کدوم یک مدل User جدا بسازیم(که مدیریت احراز هویت و دسترسیهارو سختش می کنه)
الگوی پروفایل (Profile Model Pattern)
یک مدل User مرکزی داشته باشید: این مدل فقط مسئول اطلاعات مشترک و احراز هویته (نام کاربری، ایمیل، پسورد و ...)
یک مدل Profile جدا بسازید: برای اطلاعات اضافی، یک مدل جدید (مثلا SellerProfile) بسازید و تمام فیلدهای مخصوص فروشنده رو داخل اون قرار بدید.
با OneToOneField وصلشون کنید: این دو مدل رو با یک رابطه یک-به-یک به هم متصل کنید.
#profile_model_pattern
@Syntax_fa
👍16