PDA

View Full Version : سوال: ساخت جدول و ایجاد شرط



علی فتحی
سه شنبه 14 مرداد 1393, 00:53 صبح
سلام و خسته نباشید.
دربانک اطلاعاتی 2 تا جدول مرتبط وجود دارد . وابسته به هم.خوب یک واقعیت تا زمانی که جدول اول پرنباشد نمیشه برای جدول دوم والد چیزی تعریف کرد.
حالا سوالم اینجاست .چگونه میتوان این کار را با کد اجباری و غیر اجباری کرد.
مثلا. کد مشتری -نام مشتری و در جدول 2 =کد مشتری-کد کالا - نام کالا .برای ثبت کالا حتما باید مشتری تعریف بشه.
ایا میتوان این شرط رو لغو کرد . مشتری بدون جدول کالا ثبت کرد؟

alonmahdi
سه شنبه 14 مرداد 1393, 01:11 صبح
سلام اگه من درست متوجه شدم شما جدول مشتری تون وابسته به جدول کالا هست درسته ؟
خب چرا این طوری ؟ این طور که اشتباهه !
می بایست ثبت کالا به مشتری وابسته باشه .

plus
سه شنبه 14 مرداد 1393, 14:17 عصر
نوع روابط (1-1، 1-n یا ...) و مساله رو باید شفاف تر کنید و البته به نظر میاد طراحیتون مشکل دار هست.
اگه رابطه بین کالا و مشتری 1 به 1 هست، یعنی هر مشتری فقط و فقط 1 کالا داره و بالعکس، طراحی درست هست و کاری که میخواین بکنین اشتباه (نقص رابطه 1-1)
اگه رابطه بین کالا و مشتی 1 به 1-0 هست، یعنی یک کالا ممکنه یک مشتری داشته باشه یا هیچ مشتری ای نداشته باشه، اونوقت طراحی درست هست، کد مشتری در جدول دوم کلید خارجی ای هست که موقعی که کالا، مشتری نداشته باشه مقدار NULL رو بهش اختصاص میدین.
اما من بعید میدونم هیچ کدوم ازین سناریو ها مورد نظر شما باشه و احتمالا رابطه مشتری با کالا در نیاز شما n به n هست (هر مشتری ممکنه یک یا چند کالا داشته باشه و برعکس).
در این حالت طراحی شما اشتباه هست. شما باید یک جدول مشتری، یک جدول کالا و یک جدول ارتباطی داشته باشید که این جدول دو ستون داره یکی کد مشتری یکی کد کالا و این جدول مشتری ها رو به کالاها (و برعکس) ارتباط میده.
در این صورت کالاها بدون وابستگی به مشتری و مشتری ها بدون وابستگی به کالا تعریف میشن.
البته در صورتی که رابطه شما 1 به n هم باشه راه حل شبیه همین راه هست.

علی فتحی
سه شنبه 14 مرداد 1393, 17:00 عصر
نه من مثال زدم . اصل کار روی سه تا جدول وابسته به هم و یک جدول مشترک هست.
من سه جدول وابسته به هم دارم . کل -معین-تفصیل معین به کل و تفصیل به معین وابسته است. حالا یک جدول مشترک برای هرسه جدول دارم بنام سند .در ثبت سند مشکلی که دارم
هر 3 جدول باید مقدار داشته باشه در حالی که بعضی از معین ها تفصیل نداره.

plus
سه شنبه 14 مرداد 1393, 17:08 عصر
معین که به تفضیل وابسته نیست بنابراین میتونید سند رو به معین ارتباط بدین. در حالتی که تفصیلی برای سند وجود نداره، مقدار کلید خارجی که در سند به تفصیل هست رو NULL قرار بدین.البته باید Allow Null باشه اون فیلد.