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

نام تاپیک: بهترین نوع داده برای تعریف کلید اصلی

  1. #1
    کاربر تازه وارد آواتار FM.ALPACHINO
    تاریخ عضویت
    تیر 1389
    محل زندگی
    khatereha
    پست
    33

    بهترین نوع داده برای تعریف کلید اصلی

    سلام دوستان
    من همیشه تو جداولی که طراحی می کنم نو ع داده ای رو برای کلید اصلی int می گیریم ، به نظر شما بهترین نوع همینه و دلایل اصلی برای استفاده از این توع چیه؟
    با تشکر

  2. #2

    نقل قول: بهترین نوع داده برای تعریف کلید اصلی

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

  3. #3
    کاربر دائمی آواتار Galawij
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شاره که م سنه
    پست
    711

    نقل قول: بهترین نوع داده برای تعریف کلید اصلی

    سلام
    به نظر من کلید اصلی جداول ما بسته به تعداد سطرهای آن جدول می تواند (smallint،intو bigint) باشد.
    این نوع تعریف کلید اصلی بعداً در گزارشات برنامه کار رو خیلی راحت تر می کنه.
    تعریف کردن کد ملی و یا شماره تلفن به عنوان کلید اصلی ممکنه در دراز مدت و عمر پروژه شما مشکل ساز بشه. مثلاً ممکنه کد ملی های صادر شده از طرف اداره ثبت اسناد عوض بشه و یا اینکه شماره تلفنهای 7 رقمی در آینده تبدیل به 8 رقمی شوند.

  4. #4

    نقل قول: بهترین نوع داده برای تعریف کلید اصلی

    این نوع تعریف کلید اصلی بعداً در گزارشات برنامه کار رو خیلی راحت تر می کنه.
    نوع تعریف کلید اصلی ارتباطی با گزارشات نداره.

    ماهیت کلید اصلی چیست؟
    کلید اصلی برای این در جداول قرار داده میشه :
    1- اطلاعات هر ردیف به صورت یونیک باشند.
    2- اطلاعات هر ردیف وابسته به کلید اصلی باشند.
    3- افزایش سرعت در گزارشات

    خوب با این تعاریف این نیست که برای هر جدول ما بیایم یک فیلد Auto Increment قرار بدیم و به عنوان کلید ازش استفاده کنیم.
    مثلا در سیستم انبار در قسمت تعریف کالا کد کالای شما دارای کاراکتر هم هست. باید حداقل 16 رقم باشه.و همچنین باید یونیک هم باشه. پس اینجا کد کالای شما که از نوع char یا varchar قرار داده میشه باید کلید شما بشه.

    تعریف کردن کد ملی و یا شماره تلفن به عنوان کلید اصلی ممکنه در دراز مدت و عمر پروژه شما مشکل ساز بشه. مثلاً ممکنه کد ملی های صادر شده از طرف اداره ثبت اسناد عوض بشه و یا اینکه شماره تلفنهای 7 رقمی در آینده تبدیل به 8 رقمی شوند.
    این رو به صورت یک مثال عرض کردم.
    اگر هم نیاز به تغییر باشه شما کار خاصی نیازی نیست انجام بدید. فقط طول فیلد شما تغییر میکنه و ارتباطی به کلید بودن یا نبودنش نداره. اگر کلید نباشه یعنی شما طول فیلد یا نوعش رو عوض نمیکنید؟؟!!

  5. #5
    کاربر دائمی آواتار Galawij
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    شاره که م سنه
    پست
    711

    نقل قول: بهترین نوع داده برای تعریف کلید اصلی

    نکاتی که باید در نظر گرفته شوند:
    1.این کلید اصلی به صورت کلید خارجی در سایر جداول هم استفاده می شه.
    2.مقایسه نوع داده int در گزارشات راحت تر از نوع داده nvarchar هست.
    3.جلوگیری از انواع خطاهای تعریف کلیدهای یکتا
    من دیدم که یک مدل ماشین یکسان در دو شهر مختلف دارای یک شماره پلاک مساوی بودند.

  6. #6

    نقل قول: بهترین نوع داده برای تعریف کلید اصلی

    این کلید اصلی به صورت کلید خارجی در سایر جداول هم استفاده می شه.
    خوب این چه تناقضی با نوع داده کلید داره؟؟

    مقایسه نوع داده int در گزارشات راحت تر از نوع داده nvarchar هست.
    خیر تفاوت محسوسی نداره.

    جلوگیری از انواع خطاهای تعریف کلیدهای یکتا
    لطفا یک مثال درباره صحبتتون بیان کنید.

    من دیدم که یک مدل ماشین یکسان در دو شهر مختلف دارای یک شماره پلاک مساوی بودند.
    شاید پلاکها یکی باشند ولی کد ایران 11و22و... به تفکیک استان های مختلف فرق داره.
    اگر دو پلاک یکی باشه میدونید در سیستم نیروی انتظامی چه افتضاحی به بار میاد. هربار که یکی رو جریمه می کنند برای دو نفر یا چند نفر جریمه درج میشه.!!

  7. #7

    نقل قول: بهترین نوع داده برای تعریف کلید اصلی

    سلام،
    در انتخاب نوع داده ای برای کلید اصلی باید ابتدا ببینیم چه صفتی از موجودیتی که قرار است جدول آن را ایجاد کنیم می تواند آن موجودیت را از سایرین تفکیک کند هر کدام از این صفات که هزینه کمتری را تحمیل کند همان را انتخاب می کنیم. ماهیت آن صفت تعیین کننده نوع داده ای کلید اصلی جدول است نه اینکه همیشه کلید اصلی از نوع اعداد صحیح باشد!
    مثلاً در مورد اتوموبیل باید پلاک آن را به عنوان کلید در نظر بگیریم چون ما به دنبال اتوموبیلی با پلاکی خاص هستیم. پلاک هم نوع داده ای متنی است نه عددی. ما می توانیم پلاک را به عنوان کلید در نظر نگیریم و خودمان یک ستون عددی اضافه کنیم و آن را کلید اصلی درنظر بگیریم علاوه بر این ستون پلاک را هم اندیس کنیم چون قرار است بر حسب پلاک جستجو کنیم. اما با اضافه کردن فیلد عددی جدید چه اتفاقی می افتد؟ در حالی که ما به دنبال اتوموبیلی با فلان پلاک هسیم و جستجوی ما بر پایه این فیلد است نه آن فیلد عددی!

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

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