PDA

View Full Version : انتخاب کلید از بین کد داوطلبی و کد ملی؟



veniz2008
یک شنبه 25 تیر 1391, 10:14 صبح
سلام،من در جدول داوطلب، دو فیلد یکتا دارم. یکی کد داوطلبی و دومی کد ملی. البته بیشترین کاربردها رو کد داوطلبی خواهد داشت (جستجوها و گزارش گیری های مالی و ...). حالا سوالم اینه که کدوم فیلد رو باید کلید اصلی بگیرم؟اگر کد داوطلبی رو کلید بگیرم با توجه به یکتا بودن کد ملی، وضعیت این فیلد چطور میشه؟(منظورم موقعی هست که میخوایم یه داوطلب جدید ثبت کنیم)

مرتضی تقدمی
یک شنبه 25 تیر 1391, 10:33 صبح
سلام
شما می تونید از هر دو یا ترکیب جفتشون به عنوان کلید استفاده کنی. اما ترکیب هردو اصلا پیشنهاد نمیشه. چون شما هم فیلد شماره داوطلبیت یکتاست و هم کد ملی. می تونی شماره داوطلبی رو کلید بگیری و تکراری نبودن کد ملی رو توی برنامه بررسی کنید. یا برعکس. و یا می تونی کد داوطلبی رو identity تعریف کنی و کد ملی رو کلید بگیری. به هرحال فرقی نمی کنه.
موفق باشید

mohsenm66
یک شنبه 25 تیر 1391, 10:33 صبح
ميتوني هر دو را كليد بگيري ولي به نظر من كد ملي بهتره
ميتوني فيلد شماره داوطلبي را هم INDEX گذاري كني جهت بالابردن سرعت

davoodrm666_666
یک شنبه 25 تیر 1391, 11:53 صبح
هیچ کدام از فیلد ها رو کلید نکنید و یک فیلد دیگه به جدول اضافه و کلید کنید مثلا یک فیلد از نوع عددی با عنوان Id

حمیدرضاصادقیان
یک شنبه 25 تیر 1391, 14:00 عصر
سلام.


هیچ کدام از فیلد ها رو کلید نکنید و یک فیلد دیگه به جدول اضافه و کلید کنید مثلا یک فیلد از نوع عددی با عنوان Id
میشه صحبتهاتون رو با دلیل بیان کنید؟؟؟


ميتوني فيلد شماره داوطلبي را هم INDEX گذاري كني جهت بالابردن سرعت
ایندکس گذاری اضافی الزاما سرعت رو افزایش نمیده.


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

mahdy.asia
پنج شنبه 29 تیر 1391, 19:05 عصر
شما باید بررسی کنید اگر همینطور می گید شماره داوطلب یونیک باشد بهتره شماره داوطلب را کلید بگیرید چون این فیلد در جستجو ها و گزارشات استفاده می شود استفاده از آن در Join ها سرعت را افزایش می یابد
اما در حالت کلی برای بانک های اطلاعاتی می بایست فیلد کلید هیچ ارتباط منطقی با جدول نداشته باشد این امر باعث می شود.
1- اگر در آینده به هر دلیلی نیاز بود مثلاً شماره داوطلبی یک نفر ویرایش شود نیازی به تغییرات در کل جداول مرتبط نیست
2- وابستگی جدول به یک فیلد می تواند امکان توسعه سیستم را در آینده کاهش دهد