PDA

View Full Version : سوال در مورد Relationship



vbapr2005
دوشنبه 14 شهریور 1384, 02:19 صبح
سلام.
بچه ها یه سوال خیلی کلی می پرسم:(در حقیقت اینا برطرف کردن ابهاماتیه که برای خودم به وجود اومده)
Primary Key و Foreign Key دقیقا چی هستن و چه ربطی به جدول های child و parent دارن؟ اصلا آیا این نوع جدول ها(child & parent) به صورتی قراردادی فقط برای خودمون فرض میشن یا اینکه توی اکسس جایی هست که این خاصیت رو معرفی کنیم؟

به غیر از این که زحمت میکشید و به سوال بالا پاسخ میدید، لطفا Group Box و Join Type رو که توی Edit Relationship هستن کامل( :لبخند: ) توضیح بدین.

--------------------------------------------------------------------------------------------------------
فکر می کنم با این توضیحات دیگه جایی برای سوال اصلی من باقی نمونه اما به هر حال سوال من این بود:

من یه دیتابیس با اکسس درست کردم که چهار تا جودل داره.
این بانک اطلاعاتی برای کتاب هاست و جدول هاش Author,Book,Publisher & Translator هستند.
از طرفی تا اونجایی که من میدونم کلید اصلی برای فیلد هایی هستند که خاص هستن(اگه این حرف اشتباه لطفا درستش رو بهم یاد بدین) پس فیلد های Author ID, Book ID, Publisher ID, & Translator ID باید اولا Auto Number باشن و ثانیا هم اونها باید Primary Key باشن.
حالا میدونیم که یه کتاب میتونه فقط یک Publisher و چند Author و چند Translator داشته باشه.
من نمیتونم این روابط رو اونجوری که میگم تنظیم کنم.
میشه لطفا کمکم کنید؟

vbapr2005
دوشنبه 14 شهریور 1384, 05:23 صبح
من این کاررو کردم:

vbapr2005
سه شنبه 15 شهریور 1384, 16:20 عصر
من سوالم رو ویرایش کردم و کلی تر پرسیدم
امیدوارم به درد افرادی که هم سطح من هستن بخوره.

vbapr2005
چهارشنبه 16 شهریور 1384, 23:11 عصر
من دوباره این دیتابیس رو باز سازی کردم.

این روابط قابل مشاهده اند:
یک کتاب و چند نویسنده * یک نویسنده و چند کتاب
یک کتاب و چند مترجم * یک مترجم و چند کتاب
یک کتاب و یک انتشارات * یک انتشارات و چند کتاب
و بالاخره بینBook ID از جدول Book و Book ID از جدول ID باید رابطه ی یک به یک برقرار باشه. اما اکسس این رابطه رو Indeterminate تشخیص داد! به نظر شما این بعدا مشکلی ایجاد نمیکنه؟

به هر حال فکر کنم این طوری دیگه درست باشد. دیگه چجوری بگم؟ لطفا جواب بدین.خودتون که بهتر میدونین. این اساس کار منه.پس لطفا جواب بدین.
ممنون

Navid7h
جمعه 18 شهریور 1384, 21:51 عصر
شما باید رابطه های چند به چند را یه دو رابطه یک به چند بشکنید.

Navid7h
جمعه 18 شهریور 1384, 22:13 عصر
منظورم شکستن روابط به صورت زیر هستش
همانطور که در پست قبلی گفتم میتونید راجع به Normalization مطالب زیادی در وب پیدا کنید

در جداولی که شما طراحی کردید AuthorId هم در جدول Book هست هم در جدول ID که با Author ارتباط دارد .
در واقع طرح قبلی شما کمی تناقض دارد !
امیدوارم کمک کرده باشم :چشمک:

vbapr2005
شنبه 19 شهریور 1384, 01:32 صبح
در جداولی که شما طراحی کردید AuthorId هم در جدول Book هست هم در جدول ID که با Author ارتباط دارد .
خب راستشو بخوای من از این جمله چیزی نفهمیدم. میشه یه کمی توضیح بدی؟ مگه این جدول من چه کاری رو نمیتونه انجام که جدول شما اون کاررو راحت تر میکنه؟
(یه کمی سوالم رو بد پرسیدم. جور دیگه ای نمی شد بپرسی. من از جدولی که درست کردم طرفداری نمی کنم. فقط میخوام بدونم چرا مال تو بهتره؟)

Navid7h
شنبه 19 شهریور 1384, 02:19 صبح
بیبین Author id هم در book هست هم در ID هم در Author

شما برای چی این کار رو انجام دادین؟
اگر قصد رابطه 1 به 1 دارین پس جدول ID برای چیه؟
اگر قصر رابطه ∞ به ∞ هست که با جدول ID اون رو خرد کردین به دوتا 1 به ∞ پس Author ID در Book چه میکند؟

تازه در جدول ID شما چندین ID مختلف را قرار دادین که این یکم عجیبه . یعنی چه رابطهای رو میخواهین پیاده کنید !

در کل به جز در نظر گرفتن قوانین نرمال ازی و جامعیت طرح شماافزونگی داره
اگر منظور خاصی از جدول ID داری تا متوجه بشم
موفق باشید

vbapr2005
شنبه 19 شهریور 1384, 02:33 صبح
آها. درسته. پس باید Author ID رو از جدول کتاب حذفش کنم.
واقعا کمک بزرگی کردی. :تشویق: نمیدونم چرا هیچکی جواب نمیداد؟
سوال به اون خوشگلی داشت اونجا خاک می خورد :لبخند:
حالا اگه میشه به اون سوال هایی هم که اول پرسیدم یه جوابی بده
دستت درد نکنه :چشمک:

Navid7h
شنبه 19 شهریور 1384, 02:38 صبح
ارتباطی که به عنوان جزئی از ساختار بانک اطلاعاتی به شمار میره، Foreign Key Constraint هستش. FK باعث میشه تا Access کنترل کنه ارتباط بین جدول Parent و Child همواره برقرار باشه. اما ارتباطی که در Queryها میبینید، الزاما FK Constraint نیستند و وجود فیزیکی در دیتابیس ندارند. این ارتباط فقط نشان دهنده این هست که Join از کدوم جدول به کدوم جدول داره اتفاق میافته
دیگه چه سوالی داری ؟
بگو اگه بتونم کمک میکنم
موفق باشین

vbapr2005
شنبه 19 شهریور 1384, 03:32 صبح
ممنون.خیلی متشکرم

vbapr2005
سه شنبه 22 شهریور 1384, 07:09 صبح
لطفا Group Box و Join Type رو که توی Edit Relationship هستن هم توضیح بدین.

dehkordilan
سه شنبه 21 شهریور 1385, 14:36 عصر
چگونه در اکسس میشه بین دو جدول ارتباط(relationship)برقرار کرد. مثلامقدار فیلد یک جدول با فیلد جدول دیگر جمع کنیم .کتاب در زمینه آموزش برنامه نویسی در اکسس به من معرفی کنید.ممنون.

انگوران
سه شنبه 21 شهریور 1385, 16:45 عصر
ابتدا در جدول اول یک فیلد بساز و اونو کلید در نظر بگیر ( primary key ) و در جدول دوم نیز یک فیلد بساز که دقیقاً مثل همین فیلد باشه ( نام ، نوع فیلد و اندازه فیلد ) ولی کلید نباشه بعدش از منوی tools گزینه relationship را انتخاب کن و در کادر باز شده هر دو جدول رو add کن تا رو صفحه بشینه بعدش هم فیلد مورد نظر رو از جدول اول درگ کن و رو همون فیلد تو جدول دوم بذار یه خط مبنی بر ارتباط بین این دو جدول ایجاد می شه و ...
البته سایر دوستان و اساتید مطمئناً راهنمائی بهتری دارن .

dehkordilan
چهارشنبه 22 شهریور 1385, 09:12 صبح
ممنون از جوابتون.توابع جمع وتفریق را چگونه میشه استفاده کرد.کتاب در زمینه برنامه نویسی اکسس لطفا به من معرفی کنید.

انگوران
چهارشنبه 22 شهریور 1385, 09:57 صبح
بنده کتاب آموزشی access 2003 ( مترجم : نادر خرمی راد ) مربوط به کانون نشر علوم رو پیشنهاد می کنم .

انگوران
چهارشنبه 22 شهریور 1385, 15:34 عصر
ببینید منظورتون همینی هست که پیوست کردم . البته به شکلهای مختلفی می شه از ارتباط استفاده کرد .

hada22
جمعه 03 دی 1389, 17:39 عصر
سلام دوستان.توقسمت ریلیشن شیپ برنامه اکسس من علامتهایی را که کنارهرفیلد از جداول مرتبط باهم میزاره وجودنداره.منظورم علامته ای یک به یک ویک به چند هست.آیامشکل از طراحی منه یا گزینه ای رابایدفعال کنم.

Profesorjd
جمعه 03 دی 1389, 19:41 عصر
با سلام
1- ظاهراً به مطالب تاپيك دقت كافي نداشتيد .
2- ارتباطات 1 به چند يا يك به يك و ... مربوط به تعريف فيلد است . بعبارتي اگر فيلد شما كليد ( Primery Key ) باشد يعني قابليت تكرار نخواهد داشت هر فيلد ديگر ( خواه كليد باشد خواهد نباشد ) در صورت ايجاد ارتباط يك به يك يا يك به چند خواهد شد . در اين حالت علامت 1 يا بي‌نهايت در انتهاي خط ارتباطي به نمايش در ميآيد . اگر هم هر دو فيلد كليد نباشند اين علائم ديده نخواهد شد ( مگر اينكه در تعاريفشان index شده باشند )