HosseinSaberi
پنج شنبه 25 اردیبهشت 1393, 12:48 عصر
با عرض سلام خدمت دوستان محترم
من یه دیتابیس ایجاد کردم که خیلی پیچیده است(از نظر خودم) علت اصلی پیچیدگیش هم استفاده از کلیدهای چندگانه ست که خیلی ها بهش اعتقادی ندارند اما من مجبور شدم ازش استفاده کنم. طراحی بانک تقریباً تمومه و فقط یک نکته مونده و اونم ایجاد رابطه بصورت آبشاریه (Cascade). چون من میخوام وقتی کاربر فیلد کلید در جدول اصلی رو تغییر داد فیلدهای مربوطه در جداول فرعی هم خود بخود عوض بشه. چند تا از ارتباطها رو تونستم بصورت آبشاری در بیارم اما بقیه نشد. خطایی که میده به نظر من غیر منطقیه اما علت تا اونجایی که من فهمیدم اینه که بعضی از کلید های خارجی ممکنه چند با آپدیت بشن.
من برای اینکه اولاً دوستان راحت تر مسئله رو متوجه بشن و ثانیاً بتونن روی مشکل اصلی فوکوس کنند و ثالثاً برای حفظ اسرار کاری اون قسمت از جدول رو که باهاش مشکل داشتم رو جدا کردم و هم اسکریپتش رو گذاشتم (برای نصب در sql) و هم تصویرش رو. توی فایل اسکریپتی که من گذاشتم تا اونجایی که میشده روابط رو آبشاری کردم اما دیگه امکانش نیست.
119065
شرح ریز مشکل
اصل مشکل اینه که از بین ارتباطهای زیر فقط میتونه یکیشون Cascade بشه
FK_A_L0
FK_A_L1
FK_A_L2
FK_A_L21
FK_A_L22
FK_A_L23
مشکل هم فکر میکنم بخاطر اینه که وقتی L0 رو تغییر میدیم با رابطه آبشاری که وجود داره خود بخود L1 هم تغییر میکنه و به تبع اون L2 ,L21,L22,L23 اما همه اینها همزمان میخوان جدول A رو هم تغییر بدند که دچار مشکل میشه. یعنی اگر یکی شون جدول A رو تغییر بده مشکلی نیست اما همه با هم نمیتونن آبشاری باشند.
واقعاً ممنون میشم اگر کسی بتونه مشکل منو حل کنه
امتحان کن که بسی گنج مرادت بدهند
گر خرابی چو مرا لطف تو آباد کند (حافظ)
من یه دیتابیس ایجاد کردم که خیلی پیچیده است(از نظر خودم) علت اصلی پیچیدگیش هم استفاده از کلیدهای چندگانه ست که خیلی ها بهش اعتقادی ندارند اما من مجبور شدم ازش استفاده کنم. طراحی بانک تقریباً تمومه و فقط یک نکته مونده و اونم ایجاد رابطه بصورت آبشاریه (Cascade). چون من میخوام وقتی کاربر فیلد کلید در جدول اصلی رو تغییر داد فیلدهای مربوطه در جداول فرعی هم خود بخود عوض بشه. چند تا از ارتباطها رو تونستم بصورت آبشاری در بیارم اما بقیه نشد. خطایی که میده به نظر من غیر منطقیه اما علت تا اونجایی که من فهمیدم اینه که بعضی از کلید های خارجی ممکنه چند با آپدیت بشن.
من برای اینکه اولاً دوستان راحت تر مسئله رو متوجه بشن و ثانیاً بتونن روی مشکل اصلی فوکوس کنند و ثالثاً برای حفظ اسرار کاری اون قسمت از جدول رو که باهاش مشکل داشتم رو جدا کردم و هم اسکریپتش رو گذاشتم (برای نصب در sql) و هم تصویرش رو. توی فایل اسکریپتی که من گذاشتم تا اونجایی که میشده روابط رو آبشاری کردم اما دیگه امکانش نیست.
119065
شرح ریز مشکل
اصل مشکل اینه که از بین ارتباطهای زیر فقط میتونه یکیشون Cascade بشه
FK_A_L0
FK_A_L1
FK_A_L2
FK_A_L21
FK_A_L22
FK_A_L23
مشکل هم فکر میکنم بخاطر اینه که وقتی L0 رو تغییر میدیم با رابطه آبشاری که وجود داره خود بخود L1 هم تغییر میکنه و به تبع اون L2 ,L21,L22,L23 اما همه اینها همزمان میخوان جدول A رو هم تغییر بدند که دچار مشکل میشه. یعنی اگر یکی شون جدول A رو تغییر بده مشکلی نیست اما همه با هم نمیتونن آبشاری باشند.
واقعاً ممنون میشم اگر کسی بتونه مشکل منو حل کنه
امتحان کن که بسی گنج مرادت بدهند
گر خرابی چو مرا لطف تو آباد کند (حافظ)