View Full Version : از لحاظ اصول پایگاه داده آیا کلید خارجی یک جدول، میتونه کلید اصلی همون جدول باشه؟
veniz2008
چهارشنبه 04 مرداد 1391, 09:59 صبح
سلام دوستان.آیا کلید خارجی در یک جدول میتونه از لحاظ اصول منطقی پایگاه داده خودش به عنوان کلید همون جدول باشه؟.با یک مثال کوتاه منظورمو توضیح میدم:فرض کنید در جدول users، نام کاربری ،کلید باشه. در جدول kala ، کد کالا کلید باشه. و در جدول kharid ،نام کاربری، کد کالا و شماره خرید(از نوع intو identity) هر 3 به عنوان کلید در نظر گرفته بشن.و ارتباط بین جداول هم برقرار شده باشه. حالا با این توضیحاتی که دادم آیا گرفتن کلید ترکیبی در جدول kharid منطقیه؟،اگه فقط شماره خرید رو به عنوان کلید بگیریم بهتر نیست؟. چون اولویت در انتخاب کلید، اول با کلید ساده است و بعد با کلید ترکیبی.
حمیدرضاصادقیان
چهارشنبه 04 مرداد 1391, 11:38 صبح
سلام.
بله اولویت با انتخاب شماره خرید هست و نیازی به ترکیب کل این موارد نیست.
زیرا شما برای دومشتری متفاوت یک شماره فاکتور یکسان نمیدین
پس نیازی به این کار نیست.
به جز این بهتره جدول خرید شما به دو قسمت کل و جز تبدیل بشه که از افزونگی داده ها جلوگیری کنید.
الان اگر یک خرید چند تا کالا درونش باشه اطلاعات تکراری مثل تاریخ ، مبلغ کل خرید، نام مشتری ، دائم تکرار خواهند شد که قوانین نرمال سازی رو نقض میکنه.
veniz2008
چهارشنبه 04 مرداد 1391, 12:20 عصر
این دو جدول خرید شامل چه فیلدهایی میشن؟میشه با یک مثال توضیح بدید.
حمیدرضاصادقیان
چهارشنبه 04 مرداد 1391, 13:29 عصر
ببینید جدول هدر شامل تاریخ خرید، شماره خرید ، کد مشتری ، مبلغ کل فاکتور ، تخفیف فاکتور، دریافت نقدی ، شماره سند می باشد که فقط یک بار تکرار می شود.
جدول Detail شامل کد فاکتور ، کد کالا، کد واحد، کد انبار، تعداد خریداری شده، مبلغ هرکالا و درصد تخفیف اون کالا است.
که به صورت یک رابطه یک به چند طراحی میشود.
maktoom
چهارشنبه 04 مرداد 1391, 23:42 عصر
سلام
درواقع همون فاکتور و ریز فاکتور.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.