PDA

View Full Version : اشکال در ایجاد ارتباط بین 3 جدول



keshvad
چهارشنبه 16 فروردین 1385, 12:10 عصر
من 3 جدول ایجاد کرده ام برای یک کتابخانه داخلی یک سازمان خصوصی

جدول مشخصات اعضاء ..........جدول مشخصات کتابها..............جدول امانات

برای ایجاد ارتباط بین این 3 جدول چه فیلدهایی را باید کلید اولیه قرار دهم تا ارتباط درست باشد؟

اعضاء هر کدام یک کد پرسنل دارند

کتابها هر کدام یک کد اختصاصی دارند

میخواهم در جدول امانات فقط کد پرسنل و کد کتابها وارد شود

reza_rad
چهارشنبه 16 فروردین 1385, 12:14 عصر
خودتون جواب خودتون رو دادید دیگه: کلید های اصلی رو مشخص کردم





اعضاء هر کدام یک کد پرسنل دارند

کتابها هر کدام یک کد اختصاصی دارند

میخواهم در جدول امانات فقط کد پرسنل و کد کتابها وارد شود

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

ahmad2006
چهارشنبه 16 فروردین 1385, 17:20 عصر
باسلام
ارتباطات مورد نیاز
- یک ارتباط 1 به چند از کتابها به اعضا با کد کتابها
- یک ارتباط 1 به چند کتابها به امانات با کد کتابها
- یک ارتباط 1 به چند از اعضا به امانات با کد اعضا
با تشکر

keshvad
جمعه 18 فروردین 1385, 08:57 صبح
با تشکر از شما
من به شکل زیر عمل کردم
چرا بین دو جدول اعضا و امانت علامت های یک به چند ظاهر نشده با اینکه من گزینه enforce
را تیک زده ام

keshvad
جمعه 18 فروردین 1385, 09:02 صبح
من تصویر ارتباط بین جدولها رو اپلود میکنم ظاهرا تو این فروم این کار امکان پذیر نیست

MMAASS
جمعه 18 فروردین 1385, 15:17 عصر
چرا بین دو جدول اعضا و امانت علامت های یک به چند ظاهر نشده با اینکه من گزینه enforce
را تیک زده ام
احتمالا فراموش کردین که در جدول اعضا کد عضو رو کلید کنین.
یه بار دیگه چک کنین ببینین که کد اعضا کلید هست یا نه؟ :متفکر:

keshvad
جمعه 18 فروردین 1385, 23:13 عصر
کلید جدول فهرست اعضاء > MEMBER ID
کلید جدول فهرست کتابها > BOOK ID
کلید جدول امانت > MEMBER ID & BOOK ID
رابطه یک به چند بین دو جدول فهرست کتابها و جدول امانت بقرار است و علامت های این رابطه هم وجود دارد
اما وقتی گزینه ENFORCE REFERENTIAL INTEGRITY را برای ایجاد رابطه بین دوجدول
فهرست اعضاء و جدول امانت کلیک میکنم خطای زیر ظاهر میشود.
microsoft office access cant create this relationship and referential integrity

کاش میشد عکس این خطا رو فرستاد
تو خیلی از فرومها این کار امکان پذیره اما تو این فروم ظاخرا نمیشه این کارو کرد

MMAASS
شنبه 19 فروردین 1385, 12:30 عصر
تو جدول امانات رکوردهایی ثبت کردین که کد اعضای اون رکوردها در جدول اعضا نیست. یعنی کد عضوی که در جدول امانات وارد شده منبعی در جدول اعضا نداره.
رکوردها رو از جدول امانات پاک کنین و دوباره Relation رو بسازین درست می شه.

keshvad
یک شنبه 20 فروردین 1385, 00:08 صبح
با تشکر از شما دوست عزیز
همانطور که گفتم ما برای این کتابخونه سه تا جدول درست کردیم
همه کتابها رو که بالغ بر 8000 جلد کتاب میشه گذاشتیم تو جدول فهرست کتابها و فیلد book id رو براش کلید قرار دادیم
اسامی کل کارمندان شرکت و کسانی که با شرکت در ارتباط هستند رو هم اوردیم تو یک جدول دیگه و فیلد member id رو گذاشتیم کلید
حالا یک جدول سومی هم ساختیم که میخوایم وقتی کسی امانت میبره فقط ID اونو وارد کنیم و ID کتابی که میبره ( اصلا ایا این کار درسته؟ راه بهتری هم هست به نظر شما؟)
بعلاوه تاریخ دریافت وتاریخ برگشت . تو این جدول سوم نمیخوایم اطلاعات دیگه ای وارد شه
ما توصیه متین شما دوست عزیز رو هم عملی کردیم اما باز قضیه حل نشد
فهرست کتابها امانت فهرست اعضا
MEMBER ID MEMBER ID BOOK ID
BOOK ID
BOOK ID در فهرست کتابها به راحتی با BOOK ID در امانت مرتبط شد و علامت یک به چند هم ظاهر شد اما
MEMBER ID در فهرست اعضا با MEMBER ID در امانت با گزینه ENFORCE مرتبط نمیشود

MMAASS
یک شنبه 20 فروردین 1385, 18:29 عصر
همانطور که گفتم ما برای این کتابخونه سه تا جدول درست کردیم
همه کتابها رو که بالغ بر 8000 جلد کتاب میشه گذاشتیم تو جدول فهرست کتابها و فیلد book id رو براش کلید قرار دادیم
اسامی کل کارمندان شرکت و کسانی که با شرکت در ارتباط هستند رو هم اوردیم تو یک جدول دیگه و فیلد member id رو گذاشتیم کلید
حالا یک جدول سومی هم ساختیم که میخوایم وقتی کسی امانت میبره فقط ID اونو وارد کنیم و ID کتابی که میبره ( اصلا ایا این کار درسته؟ راه بهتری هم هست به نظر شما؟)
بعلاوه تاریخ دریافت وتاریخ برگشت .
بله دوست عزیز این نوع طراحیتون صحیحه و مشکلی نداره.


ما توصیه متین شما دوست عزیز رو هم عملی کردیم اما باز قضیه حل نشد
BOOK ID در فهرست کتابها به راحتی با BOOK ID در امانت مرتبط شد و علامت یک به چند هم ظاهر شد اما
MEMBER ID در فهرست اعضا با MEMBER ID در امانت با گزینه ENFORCE مرتبط نمیشود
دوست عزیز یه بار دیگه چک کنین و مطمئن باشین که تمام مقادیری در جدول امانات برای MemberId وارد شدن حتما همونهایی هستن که در جدول Member برای MemberId وارد شدن.
آخه این Error که شما می گین زمانی رخ می ده که بخواهین بین PK و FK رابطه برقرار کنین در صورتی که FK مقداری به عنوان PK نداشته باشه.
اگه میشه یا فایل رو یا تصویر error رو بذارین اینجا.

keshvad
سه شنبه 22 فروردین 1385, 22:25 عصر
بله دوست عزیز این نوع طراحیتون صحیحه و مشکلی نداره.

دوست عزیز یه بار دیگه چک کنین و مطمئن باشین که تمام مقادیری در جدول امانات برای MemberId وارد شدن حتما همونهایی هستن که در جدول Member برای MemberId وارد شدن.
آخه این Error که شما می گین زمانی رخ می ده که بخواهین بین PK و FK رابطه برقرار کنین در صورتی که FK مقداری به عنوان PK نداشته باشه.
اگه میشه یا فایل رو یا تصویر error رو بذارین اینجا.

با سپاس فراوان از حوصله شما دوست ارزشمندم

MMAASS
دوشنبه 04 اردیبهشت 1385, 15:19 عصر
با سپاس فراوان از حوصله شما دوست ارزشمندم
دوست عزیز منظورم تصویر ارتباطات نبود بلکه تصویر ارور بود. اما اگه بتونین فایلتون رو آپلود کنین بهتره چون اگه اون اروری باشه که گفتین من هنوز هم سر حرف خودم هستم. و می گم:
که یه مقداری رو به عنوان کلید خارجی تعریف کردین در صورتی که براش کلید اصلی ندارین.
من منتظر برنامه شما هستم.