View Full Version : سوال: کمک در رابطه چند به چند
mojtaba.baghban
یک شنبه 15 شهریور 1388, 22:29 عصر
سلام
اگه یه جدول title و یه جدول author داشته باشیم و از آنجا که رابطه چند به چند بین این دو بر قرار است با جدول title_author این ارتباط را بر قرار کنیم چطور می توان دیتابیس را ملزم کرد که هر title حداقل یک author داشته باشد.
محمد سلیم آبادی
یک شنبه 15 شهریور 1388, 22:48 عصر
منظورتان این است که تنها title هایی در جدول title وجود داشته باشند که حد اقل تنها یک نوستنده در مورد آن در جدول title_author چیزی نوشته باشد؟
یا به عبارتی تنها title هایی در جدول title وجود داشته باشد که در جدول junction نیز وجود داشته باشند؟
ولی برای چه منظور به این عمل احتیاج دارید؟
mojtaba.baghban
یک شنبه 15 شهریور 1388, 23:01 عصر
منظورم از title عنوان کتاب است و author نویسنده کتاب که با ارتباط آنها با جدول title_author ممکن است کتابهایی داشته باشیم که هیچ نویسنده ای نداشته باشند برای رفع این مشکل چه باید کرد
با تشکر از عنایت شما
محمد سلیم آبادی
یک شنبه 15 شهریور 1388, 23:22 عصر
اگر می خواهید کتابهایی را حذف کنید که در جدول اتصال وجود ندارد از کد زیر می توانید استفاده کنید و برای اینکه عملیات خودکار شوند از trigger روی جدول اتصال استفاده کنید. ولی این کار، کار درستی نیست!
Delete title
Where titleid not in ( select titleid
from junction)
http://www.barnamenevis.org/forum/attachment.php?attachmentid=36500&stc=1&d=1252522537
mojtaba.baghban
دوشنبه 16 شهریور 1388, 01:14 صبح
ببینید می خوام خود sql نذاره کتابی رو وارد کنیم که نویسنده نداره مثل موقعی که فیلد title رو در جدول book بصورت not null تعریف می کنیم و sql نمیذاره کتابی رو بدون title وارد دیتابیس کنیم
محمد سلیم آبادی
دوشنبه 16 شهریور 1388, 01:39 صبح
در واقع این چیزی که شما می خواهید جامعیت اطلاعات را می برد زیر سوال. اگر ما بین سه جدول مورد نظر ارتباط بر قرار کرده باشیم، در صورتی که نویسنده ای بخواهد کتابی خارج از عنوان های جدول book را بنویسد سیستم مانع از این کار خواهد شد.
من هدف و منظور شما را از این کار نمی دانم. در واقع کاری که شما می خواهید بکنید معنایی ندارد!
اگر دلیلی خوبی برای این کار داشته باشید، چگونگی انجام این کار را خواهم گفت.
بهنام بهمنی
دوشنبه 16 شهریور 1388, 09:36 صبح
منظور احتمالا اين است که براي کتابي که تاليف نشده , نويسنده اي تعريف نکنيم. ضمنا يکي از انواع جامعيت اطلاعات , جامعیت رابطه اي است (مثلا در جدول فيش حقوقي رديفي براي پرسنلي که وجود ندارد , وجود نداشته باشد).
راه حل تعريف Forign Key بين جدول عناوين با جدول ارتباط است .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.