PDA

View Full Version : کمک در ارتباط یک جدول به جدول دیگر



امید خطیبی
جمعه 15 آذر 1392, 19:39 عصر
با سلام خدمت دوستان

من 3 تا جدول دارم که در جدول اول کلید اصلی دارم و در جدول دوم کلید خارجی در جدول اول که این 2 را به همدیگه متصل کردم و در جدول دوم هم کلید اصلی دارم که می خواهم متصل کنم به جدول شماره 3 که کلید خارجی آن را در جدول شماره 3 ساخته ام اما زمانی که می خواهم کلید اصلی شماره 2 را به کلید خارجی شماره 3 وصل کنم به جای این که بیاد و کلید جدول 2 را به 3 وصل کنه کلید شماره 3 را به 2 وصل می کنه و زمانی که بر عکس این کار را انجام می دهم و کلید شماره 3 را به جدول شماره 2 متصل می کنم با این پیغام روبرو می شوم:



The columns in table '...' do not match an existing
primary key or UNIQUE constraint.
من می خواهم ببینم اگر بخواهم از جدول شماره 2 به جدول شماره 3 یک کلید دیگر داشته باشم چی کار باید بکنم

یعنی از جدول شماره 1 به 2 یک کلید و از جدول شماره 2 به 3 یک کلید دیگر!
آیا امکان این کار هست چگونه؟

Kubuntu
جمعه 15 آذر 1392, 21:53 عصر
آره! چرا که نه؟! :چشمک:
وقتی کلیدها رو وصل می کنی یک پنجره میاد توی اون چک می کنی فیلد ها و جداول انتخابی درست هست یا نه.
بنظرمن فقط این سه جدول رو یک بار در دیاگرام حذف و مجدد رابطه ها رو وصل کن

موفق باشی

امید خطیبی
شنبه 16 آذر 1392, 07:49 صبح
خیلی ممنونم آخه گرفتاری سر همین هست من زمانی که از جدول 2 به جول سه می خواهم بین دو کلید اصلی و خارجی ارتباط برقرار کنم میاد این کار را انجام می دهد:
primary key table:
2 فیلد که کلید قرار داده بودم در جدول 3 که یکی کلید اصلی و یکی کلید خارجی
foreign key table:
جدول 2 من هست که تک فیلد بیشتر نداره

این در اصل داره میاد اون 2 فیلد جدول 3 را به جدول 2 ارتباط میده نه برعکسش

آن کاری هم که شما گفتید من انجام دادم ولی باز هم نشد.

Kubuntu
شنبه 16 آذر 1392, 08:02 صبح
هیچ وقت دو فیلد به یک فیلد نمی تونه وصل بشه. می شه عکسش رو بذاری

امید خطیبی
شنبه 16 آذر 1392, 08:30 صبح
نشد داداش منظور من رو نفهمیدید
1. جدول اول یک کلید اصلی دارد درست
2. جدول دوم یک کلید اصلی دارد و یک کلید خارجی که کلید خارجی برای ارتباط از جدول شماره 1 به 2 است
3 . جدول سوم یک کلید اصلی دارد و یک کلید خارجی که کلید خارجی برای ارتباط از جدول شماره 2 به 3 می باشد

این قسمت آخر که زیرش رو خط کشیدم زمانی که میام ارتباطش رو بکشم میاد این کار زیر رو انجام می دهد.
از جدول شماره 3 یک کلید اصلی رو می گیره و کلید خارجی رو هم می گیره( به عنوان کلید اصلی )
و ار جدول شماره 2 کلید اصلی جدول را می گیره ( به عنوان کلید خارجی )
در اصل باید بر عکس این عمل باشد که هر کاری می کنم درست نمی شود و از جدول شماره 2 به 3 ارتباط نمی توانم برقرار کنم.

Kubuntu
شنبه 16 آذر 1392, 08:37 صبح
من تا حالا با این مشکل برنخوردم. اما احتمالها رو بهت می گم چک کن.
تونستی عکسش رو برام بذار. از پنجره ای که برای اتصال باز میشه و جدول.
برای کلید اصلی می یایم راست کلیک می کنیم و علامت کلید رو براش می زنیم.
اما کلید خارجی فقط یک فیلد ساده است و نباید کنارش علامت کلید باشه

امید خطیبی
شنبه 16 آذر 1392, 09:50 صبح
113589

این هم از عکسش
از کلید جدول Moshtari_Haghighi به جدول آخر فیلد آخر که Moshtari_Hoghoghi می باشد می خواهم وصل کنم
113590

و برعکس این کار از جدول آخر به جدول وسط

113592

هر دو این ها با این پیغام رو برو می شوم
113594

حالا به من بگین چی کار باید بکنم

جدول سوم مشتری حقوقی را هم فیلد آخر را از کلید بر می دارم باز وصل که می کنم این پیغام را به من می دهد

در کل کاری که می خواهم انجام دهم:

من کالایی دارم می خواهم زمانی که مشتری میاد آن کالا را خریداری می کند
بر اساس جداولی که درست کردم مشتری حقیقی یا حقوقی آن معلوم شود و مقدار کالایی که برده اند با قیمت آن را داشته باشم
حالا به من جداولی که باید داشته باشم چیست و نوع ارتباط آن ها چگونه است
با تشکر از شما دوست عزیز.

Kubuntu
شنبه 16 آذر 1392, 10:01 صبح
دقیقا همون احتمالی که دادم درسته.

خب از جدول وسطی علامت کلید رو از PK_Kamion بردار.
و از سمت راستی علامت کلید رو از فیلد PK_moshtari_Haghighi بردار.

الان دیگه مشکلی پیش نمیاد.
نکته: وقتی شما علامت کلید رو واسه یک فیلد می ذاری یعنی اون فیلد مقدار تکراری ندارد در حالی که کلید خارجی مقدار تکراری دارد. پس یک فیلد معمولی است.

موفق باشی

myasahmadi
چهارشنبه 20 آذر 1392, 06:22 صبح
سلام
این طراحی به نظر من خیلی ایراد داره
بهتره که تمام فیلدها را در یک جدول Moshtari بگذاری و با یک فیلد Flag آنها را از هم تشخیص بدی که کدام حقیقی است و کدام حقوقی.