ورود

View Full Version : یک ابهام درباره ارتباط بین فیلدهای جداول برنامه



veniz2008
پنج شنبه 13 بهمن 1390, 12:50 عصر
سلام دوستان،من سه تا جدول دارم،جدول اولم نام کاربری کلید هستش،جدول دوم کد درس کلید هست و جدول سوم نام کاربری و کد درس کلیدهای من هستد(در واقع کلید خارجی هستند)،حالا سوالم اینه که در جدول سوم فقط ذکر نام فیلدهای "نام کاربری" و "کد درس" کافی هست؟،یا باید داخل محیط sql و درون جدول سوم خودم بصورت ویزاردی این کلیدهای خارجی رو بهش معرفی کنم؟(منظور از معرفی کردن اینه که مثلا در جدول سوم خودم فیلد نام کاربری رو انتخاب و راست کلیک کنم و گزینه Relationship رو انتخاب و بعدش بگم کدوم فیلد کلید اصلی و کدوم کلید خارجی هستش)،آیا نیاز به انجام این کار هست یا نه؟

Galawij
پنج شنبه 13 بهمن 1390, 13:09 عصر
سلام،
شما وقتی که جداول را ایجاد کردید، ارتباط بین کلیدهای اصلی و خارجی را در دیاگرام ها(با دراگ و دراپ کردن)ایجاد کنید، در این صورت SQL کلیدهای خارجی را تشخیص می دهد. نام کاربری و نام درس و سایر فیلدها هم از Join این جداول به دست میاد.
بهتره برای جدول کاربران هم یک فیلد دیگر را کلید کنید(صرفاً نام یکتایی مقدار ندارد)، مثلاً کد کاربر، شماره دانشجویی، شماره پرسنلی و ...

mohandes ehsan
پنج شنبه 13 بهمن 1390, 21:51 عصر
آره لازم است شما بايد پس از طراحي جدول تمام ارتباط ها را مشخص كنيد شما رو جدول سوم ارتباط رو ايجاد كن وارتباط بين جدولهارو با معرفي كليد خارجي ومعرفيآن كليد در جدول سوم به عنوان كليد اصلي .

maktoom
جمعه 14 بهمن 1390, 00:47 صبح
سلام
اگه می خواید تفاوتش رو بینید یکبار بدون رابطه برقرار کردن برید با استفاده از جداولتون یه view بسازید. بعد به کدی که تولید میشه دقت کنید.
دوباره برگردید و بین اون جدولاتون ارتباط رو برقرار کنید دوباره برید برای همون کار قبلی view بسازید. اینبار هم به کدی که تولید میشه دقت کنید.

mahan.2002
جمعه 14 بهمن 1390, 03:00 صبح
با سلام
یه سوال این جا مطرح میشه ایا الزامی به ارتباط Relationship هست یا نه؟
من یه سوال داشتم اگر ما رکورد های که در جدول سوم یعنی جدولی که ارتباط ببین دو جدول از طریق کلید های خارجی بطور صحیح در جدول مربوطه ذخیره کنیم ایا لازم هست ما حتما رابطه رو در پایگاه داده ایجاد کنیم.
من فکر میکنم ایجاد ارتباط در بانک به منظور صحت اطلاعات در جدول است که ما درون آن از کلید خارجی استفاده کردیم.
( نکته: من میدونم ارتباط برای Join بکار میاد ولی میتونیم ما ارتباط رو زمان کوری نویسی تعیین کنیم و از جداول خروجی مناسب رو مدریافت کنیم )
در موارد متعدد فکر میکنم میشه دید زمانی که اطلاعات در جدول واسط ( که کلید های خارجی جداول در نظر گرفتیم ) زمانی که اطلاعات یک فیلد خارجی اشتباهی رو وارد این جدول می کنیم ارو پیش میاد.
در ضمن یه سوال دیگه : زمانی که ما بعنوان مثال نام کاربری و شماره کاربری را از جدول کابران حذف میکنیم زمانی که ارتباط در بانک اطلاعاتی تعریف شده باشد ایا بطور خودکار پایگاه داده اطلاعاتی رو که با شماره کاربری مزکور در جداول دیگه هست رو پاک میکنه یانه. ( باز تاکید میکنم در زمانی که ارتباط را در پایگاه داده تعیین کردیم )

baktash.n81@gmail.com
شنبه 15 بهمن 1390, 08:54 صبح
سلام

در طراحی اصولی الزلم وجود داره ... شما یا باید صحت اطلاعات رو خودتون تو لایه App چک کنید که ... هم برای طراحی زمانبر خواهد بود و هم کندتر در زمان اجرا...
یا اینکه این کارو به SQL بسپارید و در هنگامی که بروز خطا فقط پیغام رو هندل کنید ...

اما در خصوص سئوالتون بله می توانید ... در هنگام تعریف Relation مقدار Insert And Update رو روی Cascade قرار بدید.