PDA

View Full Version : ER



قله بلند
یک شنبه 01 اردیبهشت 1387, 10:09 صبح
با سلام و تشکر از توجه و پیگیری دوستانی که به سوالات پاسخ میدهند.

می خواستم راجع به تشکیل یک ER ازدوستان مشورت بگیرم که آیا تفکر من راجع به این قضیه درست است یا نه؟ آیا راه حل دیگری هست یا همین راه حل صحیح است؟

طرح مساله:
فرض کنید در پایگاه داده ای سه جدول به شرح زیر (لطفا تصویر وفایل ضمیمه را مشاهده کنید) وجود دارند:
1=جدول معاونت ها
2=جدول واحدها که رابطه یک به چند با معاونت ها دارد(یعنی معاونت یک و واحد چند)
3=جدول PC که هر دو جدول یاد شده با این جدول رابطه یک به چند دارند(یعنی یک طرف دو جدول یاد شده و چند طرف جدول PC)

یعنی هم معاونت ها و هم واحدها دارای چندین PC هستند.
در جدول PC من از سه فیلد استفاده کرده ام که به قرار زیر هستند
1=radif
2=morv
3=radif_mv
توضیحات فیلدهای جدول PC
1=ردیف جدول PC
2=این PC ای که در حال اضافه شدن است مربوط به معاونت هاست یا واحد(در فرم با radiobutton نشان داده شده است)
3=حالا که مشخص شد PC مربوطبه واحد است یا معاونت باید از یکی از دو combobox مقدار واحد یا معاونت در این ستون قرار گیرد

مشکل:
وقتی من به اضافه کردن فیلد شماره 3 می رسم به خطای زیر برخورد میکنم:
"این جدول با جدول دیگر هم در حال ارتباط است و شما نمی توانید داده وارد کنید"

من در طراحی ام(از ابتدا) جدول PC را برای معاونت و واحد به صورت مجزا در نظر گرفته ام ولی نمیدانم اصولا کار من صحیح است یا اینکه باید فقط یک جدول PC داشته باشیم .

خواهش میکنم دراین زمینه بفرمایید که کدام راه صحیح تر است

amirzazadeh
یک شنبه 01 اردیبهشت 1387, 10:20 صبح
با سلام و تشکر از توجه و پیگیری دوستانی که به سوالات پاسخ میدهند.

می خواستم راجع به تشکیل یک ER ازدوستان مشورت بگیرم که آیا تفکر من راجع به این قضیه درست است یا نه؟ آیا راه حل دیگری هست یا همین راه حل صحیح است؟

طرح مساله:
فرض کنید در پایگاه داده ای سه جدول به شرح زیر (لطفا تصویر وفایل ضمیمه را مشاهده کنید) وجود دارند:
1=جدول معاونت ها
2=جدول واحدها که رابطه یک به چند با معاونت ها دارد(یعنی معاونت یک و واحد چند)
3=جدول PC که هر دو جدول یاد شده با این جدول رابطه یک به چند دارند(یعنی یک طرف دو جدول یاد شده و چند طرف جدول PC)

یعنی هم معاونت ها و هم واحدها دارای چندین PC هستند.
در جدول PC من از سه فیلد استفاده کرده ام که به قرار زیر هستند
1=radif
2=morv
3=radif_mv
توضیحات فیلدهای جدول PC
1=ردیف جدول PC
2=این PC ای که در حال اضافه شدن است مربوط به معاونت هاست یا واحد(در فرم با radiobutton نشان داده شده است)
3=حالا که مشخص شد PC مربوطبه واحد است یا معاونت باید از یکی از دو combobox مقدار واحد یا معاونت در این ستون قرار گیرد

مشکل:
وقتی من به اضافه کردن فیلد شماره 3 می رسم به خطای زیر برخورد میکنم:
"این جدول با جدول دیگر هم در حال ارتباط است و شما نمی توانید داده وارد کنید"

من در طراحی ام(از ابتدا) جدول PC را برای معاونت و واحد به صورت مجزا در نظر گرفته ام ولی نمیدانم اصولا کار من صحیح است یا اینکه باید فقط یک جدول PC داشته باشیم .

خواهش میکنم دراین زمینه بفرمایید که کدام راه صحیح تر است
شما اول باید ارتباط جداول رو حذف کنین وبعد از اعمال تغییرات دوباره مرتبط کنین

قله بلند
یک شنبه 01 اردیبهشت 1387, 11:41 صبح
سلام
وقتی ارتباط ها را هم حذف می کنم باز هم عمل درج در فیلد سوم انجام نمی شود. یعنی مشکل من این است که حالا باید چه کار کنم

davood-ahmadi
یک شنبه 01 اردیبهشت 1387, 23:19 عصر
من با توضیحات شما متوجه منظور اصلی شما نشدم. ولی با نگاه به مثال شما تقریباً حدس زدم که چکار می خواهید بکنید. اگر حدسی که من زدم درست باشد ارتباط بین جداول شما اشکال دارد.
با یک مثال شاید بهتر متوجه شوید:
یک خانواده یک شهرت دارد مثلا احمدی. و این خانواده و یا هر خانواده دارای تعدادی اعضا هستند که این خانواده را تشکیل داده اند که مثلا یکی از اعضا می تواند داود باشد که او هم می تواند یک یا چند کامپیوتر داشته باشد ( و یا بخرد)(در اینجا عمل زیاد مهم نیست).پس عملاً مالیکیت اصلی کامپیوتر برای خانواده احمدی نیست (مالک اصلی داود است ) ولی می توانیم بگوییم که خانواده احمدی مثلا 2 تا کامپیوتر دارد (و یا می خواهد بخرد). چرا، چونکه داود زیرمجموعه خانواده احمدی است(یا یکی از اعضا خانواده احمدی است)
فکر کنم با این توضیحات باید متوجه نوع رابطه جداول شده باشید

shaghaghi
چهارشنبه 04 اردیبهشت 1387, 12:01 عصر
سلام
وقتی ارتباط ها را هم حذف می کنم باز هم عمل درج در فیلد سوم انجام نمی شود. یعنی مشکل من این است که حالا باید چه کار کنم
سلام
ساختار بانک تان را مطابق نمونه ی ضمیمه شده تغییر دهید و از یک جدول برای تخصیص کد استفاده کنید و نوع کدها را با توجه به طول آنها استخراج کنید.
امیدوارم مشکلتان حل شود.