نمایش نتایج 1 تا 5 از 5

نام تاپیک: آیا امکان دارد مقداری در کلید خارجی باشد ولی در کلید اصلی نباشد؟

  1. #1
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    آیا امکان دارد مقداری در کلید خارجی باشد ولی در کلید اصلی نباشد؟

    با سلام
    دوستان من دوتا جدول داردم.در جدول هر رو جدول فیلد با نام Code دارم و لی در جدول یک کلید اصلی و در جدول کلید خارجی است.
    بین این دو Relation زده ام و هر وقت کلید اصلی تغییر کند کلید خارجی نیز تغییر می کند.
    همه چیز درست کار می کند.
    قانون SQL می گوید باید مقدار در کلید اصلی باشد تا بتوان آن مقدار را در کلید خارجی نیز اضافه کرد.
    ولی می خواستم بدانم آیا امکان دارد مقداری در جدول دوم(کلید خارجی) وجود داشته باشد ولی در جدول اول(کلید اصلی)وجود نداشته باشد؟؟؟؟
    اگر راه حلی وجود دارد بنده را راهنمایی کنید و اگر راهی هم وجود ندارد باز هم بنده را خبر کنید.
    با تشکر

  2. #2
    من فکر می کنم که کلید خارجی نمیتواند مقدار داشته باشد.
    خود sql اجازه ورود داده ای را به شما نمی دهد مگر اینکه آن داده را قبلا در کلید اصلی خود تعریف کرده باشید.

  3. #3
    وابسته بودن مقدار کلید خارجی به کلید اصلی جزو قوانین جامعیتی پایگاه داده رابطه ای می باشد و
    امکان نقص این قانون امکان پذیر نیست مگر اینکه ارتبط دو جدول حذف شود.

  4. #4
    گاهی ممکنه در موقع تحلیل پروژه و تهیه دیتابیس، اطلاعات جمع آوری شده در سازمان مربوطه به گونه ای باشه که وقتی بعضی جداول Master و Detail تولید میشن، واقعا برای این اطلاعات داخل جدول، ارتباطی نباشه اما قراره از این به بعد روال درست پیاده سازی بشه.
    لذا زمانی که FK Constraint ساخته میشه، شما میتونین از پارامتر WITH NOCHECK استفاده کنین تا FK ارتباط درست بین Master و Detail رو چک نکنه، اما از لحظه بعد از ساخته شدن FK، برای ورود اطلاعات این کنترل صورت میگیره. یعنی فقط در لحظه ساخته شدن FK اطلاعات موجود نادیده گرفته میشن.
    این در حقیقت یک انعطاف پذیری محسوب میشه، تا شما بتونین اطلاعات رو راحت تر مدیریت کنین، اما از نظر منطق RDBMS، باید وضعیت رکوردهایی که ارتباطشون صحیح نیست حتما روشن بشه. مثلا میشه تمام Childهایی که Parent ندارند رو براشون یک رکورد Parent به عنوان Unknown ایجاد کرد، و تمام Childهای بلاتکلیف رو به اون مرتبط کرد.
    ضمنا در جدول Detail، مقدار NULL استثنا محسوب میشه و لازم نیست حتما Parent داشته باشه.

  5. #5
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814
    با سلام
    امین جان دستت درد نکنه.
    واقعا لطف کردی.
    مکلم با همین یک استثنا حل شد.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •