PDA

View Full Version : سوال: نحوه ارتباط دو جدول با دو جنس متفاوت به یک جدول دیگر با id auto increment



Nabi
دوشنبه 19 آبان 1393, 00:04 صبح
دو نوع محصول فروشی video و file در دو تیبل مجزا داریم و یک تیبل order برای ثبت سفارشات
هر سه id auto increment دارند.
رابطه یک به چند وجود داره.
حالا ممکنه رکوردهای video و file آی دی های یکسان داشته باشند که اونوقت از جدول order نمیتونیم بفهمیم سفارش از نوع video هست یا file.
فکر میکنم دو راه حل وجود داره:
1- کنار گذاشتن id auto increment و استفاده از UUID
2. استفاده از یه فیلد type از نوع enum("video", "file") در جدول order

از روش اول نمیخوام استفاده کنم.
- روش دوم به شرط اینکه بتونم از order به id video و id file دو ریلیشن مجزا بزنم. حالا وقتی میخوام لیست سفارشات رو نشون بدم، جزئیات هر رکورد سفارش، بر حسب نوع type می بایست از ریلیشن به جدول video یا ریلیشن به جدول file استفاده کنه. اینکارو چطور میتونم انجام بدم؟

- در مجموع آیا راه دیگه ای برای پیاده سازی ساختار دیتابیس پیشنهاد میکنید؟


از mysql innodb و php و yii استفاده میکنم.

afshin9032
پنج شنبه 29 آبان 1393, 14:04 عصر
باید یک فیلد type هم تعریف کنی که نوع جدول رو مشخص می کنه و بعد بر اساس فیلد ها یک UUID چند فیلدی ایجاد کنید .

Nabi
سه شنبه 11 آذر 1393, 04:40 صبح
باید یک فیلد type هم تعریف کنی که نوع جدول رو مشخص می کنه و بعد بر اساس فیلد ها یک UUID چند فیلدی ایجاد کنید .

ممنون از پاسختون.
ممکنه بیشتر توضیح بدید، در صورت افزودن فیلد type به جدول، از روی اون میشه به جدول مد نظر ریلیشن زد، دیگه چه نیازی به UUID هست؟
اگر کوئری نمونه هم بزارید که چطور میشه در عین حال که type رو درگیر میکنیم، ریلیشن چندگانه به چند جدول مختلف زد که بر حسب type، رکورد های صحیح از جداول مرتبط با type خوانده شود.