PDA

View Full Version : سوال: درباره کلیدهای اصلی و خارجی



moferferi
یک شنبه 04 مرداد 1388, 09:53 صبح
سلام.
ایا میشه بین یک جدولی که سه کلید اصلی داره و جدولی که یک کلید اصلی داره ارتباط برقرار کرد.
من این کار را با جدول هایی که یک کلید اصلی داره انجام میدم .ولی وقتی که جدول اول بیش از یک کلید اصلی داشته باشه sql اجازه انجام این کار را نمیده.
ایا اصلا امکان چنین کاری هست؟

amin_alexi
یک شنبه 04 مرداد 1388, 10:08 صبح
سلام
منظور شما از ارتباط اگه یکی انواع Join باشه باید قوانینی که در یک join برای ارتباط دو جدول لازمه رو باید رعایت کنید.
من خیلی منظور شما رو نفهمیدم ...
معمولا ارتباط بین جداول بر حسب یک منطقی انجام میشه ...
ارتباط بین جداول معمولا با P.K ها نیست ... معمولا ارتباط با کلید اصلی و خارجی برقرار میشه
اگه ارتباط منطقی جداول و کلید های اصلی و خارجی جداول رو بگی و بگی چه کار می خوای بکنی بهتر میشه کمک کرد ...

moferferi
یک شنبه 04 مرداد 1388, 18:39 عصر
سلام.
ببین
مثلا جدول a شامل فیلد های id,intfile,codeperson هست و هر سه هم باید primerykey باشه
و فیلد id باید identity باشه
حالا در جدول b شامل فیلدهای id,intfile,kala باشه .
خوب حالا میخواهیم فیلد intfile در جدول b را به فیلد intfile در جدول a ربط بدیم و یا به عبارتی اونا تبدیل به کلید خارجی بکنیم.
اگه جدول a شامل یه کلید اصلی باشه این کار انجام میشه و لی حالا که سه تا کلید اصلی داریم
اس کیو ال نمیذاره.
امیدوارم تونسته باشم منظورم را واضح بیان کنم.

amin_alexi
دوشنبه 05 مرداد 1388, 09:12 صبح
شما منظورتون از ربط دادن اینه که می خواین یک دستور SQL بنویسین که با اون دستور ربط بدین (مثل Join) و یا اینکه می خواین این کار رو تو Management Studio انجام بدین و بین جداول ارتباط بین کلید اصلی و خارجی ایجاد کنین ؟

moferferi
دوشنبه 05 مرداد 1388, 13:17 عصر
ببخشید
من میخوام relation را با کلیک بر روی فیلد intfile درجدول b ایجاد کنم

saeedr22
دوشنبه 05 مرداد 1388, 16:52 عصر
به نظر من به جای اینکه شما از کلید ترکیبی استفاده کنین بهتره که از یک کلیدی کلی استفاده کنین .این مشکلی که شما میگین من میتونم با یه مثل هم بگم ولی اون 2تا کلید ترکیبی داشت .شما از یک کلید کلی استفاده کنید و برای reletion فقط و فقط از اون استفاده کنین.ولی کار شما فقط در هنگام جستجو کمی سخت میشه که میتونی با ویو دیزاین به سادگی اونو حلش کنی.
در ضمن یکی از مشکلات بزرگ کلیدهای ترکیبی به وجود آوردن تکراره.