sajad_3dmax
دوشنبه 03 آذر 1393, 12:10 عصر
با سلام خدمت تمامی دوستان عزیز
بنده نرم افزاری طراحی کردم که کد نویسیش رو با C# انجام دادم. بانک اطلاعاتیش دو تا مشکل داره.البته این معضل رو اینجا مطرح کردم چون بنظرم اومد حداقل یکیش از طریق کد نویسی حل بشه.
1- تو ارتباطات جداول نمیخوام حذف بصورت cascade باشه چون بنظرم غیر منطقیه. لزومی نداره که اگه مثلا کاربری حذف شد تمام سوابق کاریش حذف بشه. منتها اگه تو خواص ارتباطات بیام delete رو برابر no action قرار بدم موقع حذف کردن اطلاعات جدولی که کلید اصلی داره اگه این کلید تو جدول دیگه ای بکار برده شده باشه(بعنوان کلید خارجی )exeption رخ میده که conflict رخ داده که البته اگه بجای no action گزینه cascade رو انتخاب کنم مشکل conflict حل میشه. اما من میخوام تنظیم روی no action باشه و نه update. به همون دلیلی که توضیح دادم.که حتی خود همین update باعث معضل دیگه ای تو ارتباطات بانک میشه به نام cycle که مشکل دوم منه. چطور باید این گزینه no action رو بکار ببرم.
2- دوم اینکه بعضی ارتباطات باعث ایجاد cycle میشوند. چرا؟
مثلا من جدول کاربران رو دارم به اسم users. تو باقی جداولم (tbl_1,tbl_2,...) هم یه فیلدی گذاشتم بعنوان کاربر ثبت کننده که هر اطلاعاتی که ثبت بشه نام کاربر هم ثبت بشه.اگه تنظیم delete بصورت cascade باشه در تمام ارتباطات Cascade رخ میده. چرا؟ مشکل از کجاست؟
بنده نرم افزاری طراحی کردم که کد نویسیش رو با C# انجام دادم. بانک اطلاعاتیش دو تا مشکل داره.البته این معضل رو اینجا مطرح کردم چون بنظرم اومد حداقل یکیش از طریق کد نویسی حل بشه.
1- تو ارتباطات جداول نمیخوام حذف بصورت cascade باشه چون بنظرم غیر منطقیه. لزومی نداره که اگه مثلا کاربری حذف شد تمام سوابق کاریش حذف بشه. منتها اگه تو خواص ارتباطات بیام delete رو برابر no action قرار بدم موقع حذف کردن اطلاعات جدولی که کلید اصلی داره اگه این کلید تو جدول دیگه ای بکار برده شده باشه(بعنوان کلید خارجی )exeption رخ میده که conflict رخ داده که البته اگه بجای no action گزینه cascade رو انتخاب کنم مشکل conflict حل میشه. اما من میخوام تنظیم روی no action باشه و نه update. به همون دلیلی که توضیح دادم.که حتی خود همین update باعث معضل دیگه ای تو ارتباطات بانک میشه به نام cycle که مشکل دوم منه. چطور باید این گزینه no action رو بکار ببرم.
2- دوم اینکه بعضی ارتباطات باعث ایجاد cycle میشوند. چرا؟
مثلا من جدول کاربران رو دارم به اسم users. تو باقی جداولم (tbl_1,tbl_2,...) هم یه فیلدی گذاشتم بعنوان کاربر ثبت کننده که هر اطلاعاتی که ثبت بشه نام کاربر هم ثبت بشه.اگه تنظیم delete بصورت cascade باشه در تمام ارتباطات Cascade رخ میده. چرا؟ مشکل از کجاست؟