رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه استخراج اطلاعات جدولی که با جدول اصلی ریلیشن داره
#1
سلام و درود

من یه جدول محصولات دارم که محصولاتی که قراره به صورت پستی ارسال بشن رو توی اون ذخیره میکنم ..
مثلا یک بسته ی آموزشی ..
حالا این بسته ممکنه بخوام بصورت فروش از طریق دانلود هم بگذارمش ..
برای همین یه جدول ساختم که اطلاعات بسته مخصوص دانلود مث قیمت و حجم و این ها رو داره ..
یه فیلد به نام product_id هم دارم که وصل میشه به جدول محصولات و فیلد ID ... برای این که مشخص کنم این بسته ی دانلودی مال کدوم محصول هست و از طریق اون عنوان و توضیحاتش رو از جدول محصولات بخونم ..

حالا مشکلم اینه که نمیدونم توی مدل و کنترلر چه کدی رو بنویسم که این کار رو انجام بده .. Huh
! WORK HARD
پاسخ
تشکر شده توسط:
#2
خوب شما ارتباط بین جداول رو که با Gii ساخته میشه دارین؟ فرض کنیم اسم مدل محصولات، Products هست و اسم مدل دانلود هم Downloads

حالا شما توی سناریوی خودتون، ارتباط بین این دو مدل رو 1 به 1 گذاشتین یا 1 به N ؟
پاسخ
تشکر شده توسط:
#3
اسم مدل ها دقیقا همینه ..
ارتباط بین جداول رو ندارم ، زمانی که مدل رو با Gii ساختم ارتباط ها رو تیک زدم که بسازه ولی نساخت!
ولی ارتباطشون باید 1 به 1 باشه .. چون هر محصول یه دونه بسته ی مخصوص دانلود داره ..
! WORK HARD
پاسخ
تشکر شده توسط:
#4
حتماً توی دیتایبس Relation نساخته بودین که ارتباطها رو نساخته. اگه ارتباط 1 به 1 هست و تعداد فیلدها زیاد نیست، بیارین توی یه جدول و Nullable بگذارین.
پاسخ
تشکر شده توسط:
#5
توی دیتابیس هم ارتباط ها رو ساختم ..  حالا اگه فیلدها رو توی جدول اصلی هم بزارم ، یه جدول دیگه دارم که اطلاعات هر قسمتی که گذاشته میشه برای دانلود رو ذخیره میکنه ..
دیتابیس رو آپلود کردم .. دانلود کن ببین


فایل‌های پیوست
.zip   database.zip (اندازه 1.82 KB / تعداد دانلود: 0)
! WORK HARD
پاسخ
تشکر شده توسط:
#6
همینجا ضمیمه کنید فایلها رو. ایندفعه خودم انجام دادم.
پاسخ
تشکر شده توسط:
#7
(07-04-1394، 07:28 ب.ظ)ADMIN نوشته: همینجا ضمیمه کنید فایلها رو. ایندفعه خودم انجام دادم.

چشم ...
فایلی که گذاشتم لطفا بررسی کن ببین توی ارتباط ها اشتباهی هست یا نه ؟!
! WORK HARD
پاسخ
تشکر شده توسط:
#8
نگاش کردم. لطفاً تحلیل فارسی خودتون رو هم از موجودیتها بنویسید. منظورم اینه که سناریوی کار رو تعریف کنید. اینکه هر جدول چه کاری انجام میده. یا اصلاً قراره سیستم چطوری کار کنه. تا وقتی سناریوی پروژه رو ندونیم، نمیتونیم بگیم طراحی دیتابیس خوبه یا نه چون هر Schema برای سناریوی خاصی ممکنه خوب یا بد باشه.
پاسخ
تشکر شده توسط:
#9
خب در حال حاضر مشکل من اینه که چجوری به فیلد های جدول زیر مجموعه ی یک جدول دیگه توی Yii دسترسی پیدا کنم ... با استفاده از اون رابطه ای که بینشون هست .. حالا فرض میگیریم رابطه 1 به 1 هست و اصن مال این پروژه هم نیست .. کلا این کار رو چجوری میتونم انجام بدم ؟
حالا مستندات و تحلیل فارسی که گفتید جزء مسائل خصوصی پروژه ی بنده هست که ترجیح میدم اینجا صحبتی ازش نشه...
! WORK HARD
پاسخ
تشکر شده توسط:
#10
خوب فرض کنید یه Relation دارین به اسم download توی مدل Products. کافیه برای خوندن فیلد link از رکورد download مربوط به یه محصول اینطوری کار کنید:
$product->download->link
پاسخ
تشکر شده توسط: Mohammad Salehi
#11
علت اینکه چرا Gii ریلیشنها رو نمیساخت توی تیم ویور مشخص شد. برای اطلاع کسانی که مشکل مشابه دارن میگم. ابتدا جداول پیشوند داشتن و بخاطر همین با tablePrefix توی تنظیمات دیتابیس، پیشوند رو مشخص کرده بودن. بعداً پیشوند حذف شده بود ولی Gii همچنان داشت اطلاعات رو با پیشوند میخوند و درنتیجه چون جداول رو پیدا نمیکرد، ارتباطها رو نمیساخت. با وجود اینکه توی تنظیمات دیتابیس توی فایل تنظیمات، پیشوند حذف شده بود ولی Gii بازم دنبال پسوند بود. علتش اینه که اولین بار که Gii رو بارگذاری میکنید، تنظیمات دیتابیس رو توی پوشه protected/runtime و داخل یه پوشه به اسم gii که در ادامه نسخه فریمورک اومده، ذخیره میکنه. اگه میخواین تنظیمات جدید خونده بشه، باید این پوشه رو حذف کنید تا Gii دوباره فایل تنظیمات رو بخونه و از تغییرات مطلع بشه.
پاسخ
تشکر شده توسط: Mohammad Salehi , abdollah110110




کاربران در حال بازدید این موضوع: 1 مهمان