PDA

View Full Version : سوال: عدم آپدیت جدول ها در حالی که با هم ارتباط دارند؟



vid4259
چهارشنبه 21 بهمن 1394, 09:56 صبح
سلام
یک برنامه دارم شامل سه جدول در sql server که به شرح زیر است:
جدول مهارت:کدمهارت-نام مهارت-تاریخ شروع-تاریخ پایان-سطح مهارت- مدت مهارت(روز)
جدول مدرس:کد مدرس -نام مدرش- نام خانوادگی مدرس-کدملی مدرس-ـدرس - موبایل - تحصیلات -آدرس -عکس
جدول مهارت-مدرس-کد(اتوماتیک)-کدمدرس(کلیدخارجی)-نام مدرس-نام خانوادگی مدرس-کدمهارت(کلید خارجی)-نام مهارت-تاریخ شروع-تاریخ پایان-سطح مهارت- مدت مهارت(روز)

در دیتابیس update ,delete خاصیت ارتباط کلیدخارجی ها رو روی cascade قرار دادم حالا تو برنامه وقتی دوره یا مدرس رو حذف می کنم اطلاعات در جدول مهارت -مدرس پاک میشه ولی وقتی یکی از مهارت یا مدرس رو ویرایش می کنم در جدول مهارت و مدرس ویرایش رخ نمی ده !

1-آیا روشی که انتخاب کردم اصولی هست یا نه؟
2-باید توی دیتابیس مشکل ویراش رو حل کنم یا با کد تو سی شارپ؟
لطفا راهنمایم کنید.

Davidd
چهارشنبه 21 بهمن 1394, 12:17 عصر
سلام. روش طراحیتون اشتباهه، نرمال نیست و افزونگی داره . جدول مهارت-مدرس فقط و فقط دو فیلد لازم داره : کدمدرس(کلیدخارجی) و کدمهارت(کلید خارجی). با join کردن این جدول با دو تا جدول دیگه میتونی اطلاعات کامل نشون بدی. اگه هر مهارت فقط یک مدرس داشته باشه جدول مهارت-مدرس اضافیه و کافیه کدمدرس(کلیدخارجی) به جدول مهارت اضافه بشه.
نیازی به تعریف Cascade روی Update نیست چون کد مدرس و کد مهارت تغییر نمی کنند.

vid4259
چهارشنبه 21 بهمن 1394, 15:47 عصر
ممنون از راهنمای تون
اول اینکه نه نیاز به جدول مهارت-مدرس دارم چون ممکن هست یه مدرس چندتا مهارت رو که وجود دارده بر دارده یا اینکه یک مهارت رو چند مدرس تدریس کنن
دوم لطف کنید کد join رو چطور بنویسم

vid4259
پنج شنبه 22 بهمن 1394, 12:25 عصر
سلام با استفاده از view این مشکل رو حل کردم