PDA

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



عباس1382
سه شنبه 04 آذر 1382, 21:28 عصر
چگونه می توان قوانین جامعیت ارجاعی (مربوط به تعریف کلید خارجی ) را در جداول پدر و فرزند رعایت نمود ؟ :!:
به عنوان مثال اگر رکوردی را در جدول پدر حذف نمائیم رکوردهای مربوط به آن در جدول فرزند نیز حذف گردد و برعکس در مورد درج در جدول فرزند لطفاً مرا راهنمائی کنید .
متشکرم :wink:
[/b]

سه شنبه 04 آذر 1382, 23:28 عصر
از رویداد before delete توی جدول مستر استفاده کن و همه رکوردهایی که توی جدول دیتیل مربوط به این رکورد خاص جدول مستر بود رو پاک کن بایه کوری
مثل
delete from table1 where table1.code=:code1

SReza1
چهارشنبه 05 آذر 1382, 12:25 عصر
به نظر من cascade delete کار خیلی خطرناکیه و هیج وقت این کار رو نکن!!!
ولی میوتمی با همون query بالا این کار رو بکنی!! ولی بازم توصیه میکنم این کار رو نکن!

عباس1382
چهارشنبه 05 آذر 1382, 15:47 عصر
:shock:
با تشکر از پاسخ دوستان
لطفاً مرا در مورد درج در جداول مستر و دیتل نیز راهنمایی کنید

خودکاری :P

عباس1382
چهارشنبه 05 آذر 1382, 17:49 عصر
لطفاً منو در مورد طراحی دو جدول به صورت مستر و دیتیل (با استفاده از کلید خارجی) در sqlراهنمائی کنید

با تشکر :P

SReza1
جمعه 07 آذر 1382, 20:06 عصر
از ado استفاده میکنی یا ttable ?

عباس1382
جمعه 07 آذر 1382, 21:01 عصر
سلام آقای داودی
ببخشید که کمی دیر جواب دادم
بیشتر از ado استفاده می کنم و جداولم را در sql ساخته ام
قبلاً از راهنمائیهای شما متشکرم

خودکاری :oops:

عباس1382
جمعه 07 آذر 1382, 21:29 عصر
می دونید می خوام چی بگم :oops:
من این جدول را در sql ساختم با مجموعه دستورات زیر :
Create table s1
(
s# int not null,
sname char(30) not null,
avg float,
clg# int
primery key (s#)

foreign key (clg# ) refrence clg
on update cascade
on delete cascade
);


جدول clg را با در نظر گرفتن تعریف کلید خارجی ساختم
سوال :چرا --- از قید های
on update cascade
on delete cascade
ایراد می گیرد
ضمناً قیدهای فوق می گویند اگر زمانی این کلید در جدول اصلی تغییر یا حذف شد در این جدول نیز مشابه آن انجام شود پس چرا اینگونه نیست
اشکال کار در کجاست :|

SReza1
دوشنبه 10 آذر 1382, 22:15 عصر
اگه با ارتباطات رو در بانک ایجاد کردی نیازی به کدنویسی نیست چون خود engeene این کارو میکنه!
میمونه نشون دادن دستورات!
در ado یه خاصیت به نام datasourec هست که در جدول detail اون به master وصل مکینmasterfield رو ست کن
ببین حالا چی میشه