View Full Version : ارتباط جداول در sqlserver2008
MostafaKazeminiya63
دوشنبه 12 تیر 1391, 22:55 عصر
سلام خدمت دوستان
من یک جدول دارم با نام جدول شماره یک که چهار فیلد آن با هم عنوان کلید اصلی هستند . جدول دیگری وجود دارد که میخواهم از طریق یک فیلد آن که کلید اصلی نیست ارتباطی برقرار کنم فقط با یک عدد از فیلدهای کلید اصلی جدول شماره یک ، البته این کار را می خواهم در قسمت diagram انجام دهم ولی اجازه داده نمیشود . لطفا اگر کسی راهکاری دارد ازش ممنون میشم .
maktoom
سه شنبه 13 تیر 1391, 06:58 صبح
سلام
می تونید بجای اینکه هر 4 تا رو کلید اصلی بگیرید یه فیلد مثل id براش در نظر بگیرید اون رو کلید اصلی قرار بدید. بعدش دیگه نباید مشکلی باشه واسه اینکه یک فیلد از اون رو بخواید با یه فیلد از یه جدول دیگه ارتباط بدید.
baktash.n81@gmail.com
سه شنبه 13 تیر 1391, 07:45 صبح
یه سوال مطرح می شه ... مگه نه اینکه کلید خارجی در یک جدول باید کلید اصلی یک جدول دیگه باشه ؟!؟
maktoom
سه شنبه 13 تیر 1391, 20:14 عصر
سلام
متوجه سوالتون نمی شم.
پاسخی که من دادم این بود که در جدول شماره 1 یک فیلد دیگه اضافه کنید. این فیلد رو بعنوان یکتا ساز هر رکورد با id نام گذاری کنید و اون رو به تنهایی بعنوان کلید اصلی در این جدول قرار بدید.
بعد این فیلد رو در جدول شماره 2 بعنوان کلید خارجی قرار بدید.
اگر سوالی هست بفرمایید تا ببینم می تونم پاسخ بدم یا خیر.
حمیدرضاصادقیان
سه شنبه 13 تیر 1391, 21:59 عصر
سلام.
شما نمیتونید در یک جدولی که ترکیب چند فیلد باهم هستند رو به عنوان کلید خارجی در جدول دیگه ازش استفاده کنید. به همین خاطر باید راکاری که دوست خوبمون maktoom گفتند رو انجام بدید. اگر میخواهید ترکیب این 4 فیلد باهم Unique باشند میتوانید یک INDEX UNIQUE روی این 4 فیلد بسازیدو یک کلید ID بسازید و انو کلید اصلی بگیرید و در جدول دوم به عنوان کلید خارجی ازش استفاده کنید.
baktash.n81@gmail.com
سه شنبه 13 تیر 1391, 23:28 عصر
خیر سئوالی نیست من از کامنت شما برداشت دیگه ای کردم ... در هر صورت می خواستم یادآوری کنم ...
درهر صورت کاربر عزیزی که این تاپیک رو ایجاد کردی لطفا از چهارتا کلید اصلی استفاده نکن ... حتی اگه از خیر ارتباط بین جداول گذشتی ... این کار روش مناسبی نیست ...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.