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 استفاده میکنم.
هر سه 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 استفاده میکنم.