مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

bmv

عضویت از 1394/01/03

برقرار نشدن ارتباط بین دو جدول

  • پنجشنبه 6 دی 1397
  • 00:56
تشکر میکنم

باسلام خدمت دوستان

من دو جدول دارم یکی با نام commoTable که بصورت زیره:

که دوفیلد اول کلید خارجی هستن و از فیلد CommodCod در جدول دیگه هم هست که برای برقراری ارتباط بین دو جدول.

و جدول دیگرم با نام FactorSaleTable بصورت زیره:

که دو فیلد اول کلید اصلی هستن،البته فیلد دوم (CommodCodFact) کلید خارجی میشه که بناست با جدول CommoTable ارتباط برقرار بشه. برای اینکه فیلد دوم کلید بشه به شیوه فیلد اولی کلید کردم، یعنی راست کلیک کردم و گزینه کلید اصلی رو انتخاب کردمو

وقتی در صفحه جدول Factor راست کلیک میکنم و پنجره RelationShip رو انتخاب میکنم و از پنجره باز شده تنظیمات رو بصورت زیر انجام میدم:

ولی با خطای زیر مواجه میشم:

ممنون میشم راهنماییم کنید که این خطا برا چیه و چجوری باید رفعش کنم.

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 6 دی 1397
  • 09:24

برای جدولتان کلید اصلی تعریف نکرده اید. به همین دلیل این خطا را دریافت می کنید.

کاربر سایت

bmv

عضویت از 1394/01/03

  • پنجشنبه 6 دی 1397
  • 13:49

آقای علیزاده ممنون از راهنمایتون،ولی من روی هر دو فیلد اول در دو جدول کلیک راست کردم و گزینه کلید اصلی رو انتخاب کذدم ولی این خطا رو میده.

ممنون میشم راهنماییم کنید.

کاربر سایت

علی رمضانی

عضویت از 1392/12/24

  • پنجشنبه 6 دی 1397
  • 15:13
سلام و عرض ادب. وقتی می خواید از یک فیلد به عنوان کلید خارجی استفاده کنید نباید در همون جدولی که کلید خارجی هست، کلید اصلی هم باشه. یکی از فلسفه های کلید خارجی پیاده کردن ارتباط یک به چند هست، یعنی امکان تکرار وجود داره ولی وقتی شما اون رو قبلش به کلید اصلی تبدیل کردید خطا دریافت می کنید چون فیلدی که کلید اصلی شده اجازه درج مقدار تکراری به شما نمیده.
کاربر سایت

bmv

عضویت از 1394/01/03

  • پنجشنبه 6 دی 1397
  • 19:58

آقای رمضانی ممنون از راهنمایی نون.

به عبارتی در جدول CommoTable فیلد های RowCo و CommodCod کلید اصلی باشه و در جدول  FactorSaleTable فقط فیلد RowFact کلید اصلی باشه و در میحط جدول FactorSaleTable راست کلید کنم گزینه ریلیشن شیپ رو انتخاب کنم و در قسمت کلید اصلی جدول CommoTable انتخاب کنم و فیلد CommodCod رو انتخاب کنم؟

نمیدونم درست متوجه شدم یا نه؟

ممنون میشم راهنماییم کنید

باتشکر

کاربر سایت

علی رمضانی

عضویت از 1392/12/24

  • چهارشنبه 12 دی 1397
  • 23:58
سلام بله درسته. البته بهتر اینه که کلید اصلی رو یک فیلد از جنس عددی انتخاب کنید که بی معنی باشه. منظورم اینه که مثلا کدملی نباشه. این کار برای تسهیل در نگهداری دیتابیس و بالابردن سرعت خیلی مفیده. موفق باشید
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)