💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ محمد حسین سخایی
ترکیبی بودن Primarykey
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۱۹ فروردین ۱۳۹۹

سلام

اگر Primarykey به صورت ترکیبی باشه در یک جدول  اون وقت Foreign Key چگونه انتخاب میشه؟؟؟؟

سلام.

حالا من سناریویی که مد نظرتونه رو نمیدونم.

اگر هر فیلد به جدول متفاوت تعلق داره خب برای هر فیلد، کلید خارجی جدا تعیین میکنید. اگر همه فیلدها فقط به یک جدول اشاره میکنن، خب همه رو با هم بعنوان کلید خارجی در مقابل فیلدهای متناظرشون در جدول دیگه تعیین میکنید.

 

یه مثال بزنم، امتیاز دادن هر کاربر به پست ها  رو درنظر بگیریم.

یک جدول user داریم که فیلد user_id داره.

یک جدول post که فیلد post_id رو داره.

یک جدول vote داریم  که باید طوری طراحی بشه تا هر کاربر فقط یکبار بتونه به یک پست امتیاز بده.

پس جدول vote رو با دو فیلد vote_user_id و vote_user_id ایجاد میکنیم و هر دو فیلد رو pk(یا unique) میکنیم.

یک کلید خارجی برای vote_user_id به فیلد user_id از جدول user اضافه میکنیم.

و یک کلید خارجی برای vote_post_id به فیلد post_id از جدول post اضافه میکنیم.

 

برای مطالعه ی بیشتر میتونید به این لینک نگاه بندازید.

https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html

محسن موحد ۱۹ فروردین ۱۳۹۹، ۲۱:۰۵

اضافه بر توضیحات محسن در حالتی که ترکیبی از دو فیلد رو می‌خوای کلید اصلی کنی، یه سولوشن اینه که یه فیلدی مثل id اضاقه کنی و اونو کلید اصلی کنی و توی کدها این قضیه رو هندل کنی.

لقمان آوند ۲۰ فروردین ۱۳۹۹، ۲۱:۳۳