0
جنگو و کلید خارجی
سلام روز بخیر و طاعات و عبادات قبول . سوالی داشتم . من یه مدل یوزر با یک فیلد بولی برای تشخیص خریدار یا فروشنده بودن دارم با یک مدلِ محصول . یک کلید خارجی برای محصول گزاشتم و به یوزر وصلش کردم یعنی این یوزر فروشنده این کالاس . حالا میخوام خریدار رو هم به یک شکلی به این محصول وصل کنم تا 2 تا پرتال (یکی برای فرد فرئشنده که بتونه محصولشو مدیریت کنه و یکی برای خریدار که محصولی که رزرو میکنه رو بخره و یا انصراف بده)داشته باشم . ولی یه نفر بهم گفت که کار جالبی نیس که 2 تا کلید خارجی برای یک مدل تعریف بشه . یک مدل دیگه اوردم به عنوان سفارش تا درست بشه ولی خب سفارش هم وصل کردم به محصول و نمیخوام یک کلید خارجی دیگه داشته باشم و از طرفی دیگه خریدار دسترسی نداره به سفارش . این بده که 2 تا کلید خارجی به عنوان فیلد یک مدل در نظر بگیریم؟میشه راهنمایی کنید چطوری هم خریدار و هم فروشنده به کالا دسترسی داشته باشند ؟
class Product :
user = Foreignkey(User)
class order :
product = Foreignkey(Product)
1 پاسخ
0
سلام
1- این که یک ماهیت به عنوان سفارش داشته باشید کاملا درسته ، چون اگه خریدار چند بار بخواد خرید بکنه اون وقت بدون داشتن سفارش همه چیز بهم میریزه، ضمنا بحث هایی مثل پرداخت ، برگشت پول ، ارسال و ... هم به همین سفارش وصل میشن.
2- دقیقا چرا می خواید چند تا کلید برای یک ماهیت داشته باشید ؟ خب یک کالا یک ID داره ، همین ID در فروشنده و سفارش استفاده میشه.
3- ضمنا اگه بحث چند فروشندگی روی یک کالا باشه ، شما نیاز به یک جدول میانی دارید ، که توش حداقل سه ستون دارید.
productSellerId, SellerID,ProductID
4- اگه تک فروشنده باشه ، که اصلا یا ID فروشنده نمی خواد یا ID فروشنده باید توی کالا باشه. ( نهID کالا در فروشنده)