View Full Version : تعیین primary key
hercules_3d
دوشنبه 06 اسفند 1386, 16:01 عصر
سلام
فرض کنید توی یه جدولی یه فیلد کد پرسنل داریم که کد پرسنلی کارمندا رو نگه می داره و یونیکه و نوع اون varchar(10) هستش. حالا به نظرتون بهتره این فیلد با توجه به رشته بودنش primary key باشه یا یه فیلد عددی اضافه کنم و اونو primary key بگیرم؟
tabib_m
دوشنبه 06 اسفند 1386, 18:08 عصر
فکر میکنم اگر از یک فیلد عددی که auto_increment هم باشه استفاده کنی، بهتر باشه...
hercules_3d
دوشنبه 06 اسفند 1386, 23:01 عصر
DBDeigner یه مثال تو خودش داره که ISBN کتاب رو از نوع varchar(15) گرفته و با این وجود اونو PK گرفته!
نمی تونست یه فیلد عددی بگیره اونم از نوع اتو اینکریمنت؟
reza_rad
سه شنبه 07 اسفند 1386, 07:34 صبح
ISBN کتاب رو از نوع varchar(15) گرفته و با این وجود اونو PK گرفته!
ISBN کتاب چون کدی هست با فرمت خاص پس شاید نشه اون رو auto increment گرفت. اما برای کار شما و کد پرسنلی بسته به نوع کد شما می تونید از هر کدوم از دو روشی که گفتید استفاده کنید. مسلما استفاده از auto increment ساده تر هست ولی در شرایطی که کد شما باید به فرمت خاصی باشه شاید تولید کردن اون توسط خودتون بهتر منطق کار رو پیاده سازی کنه.
hercules_3d
سه شنبه 07 اسفند 1386, 16:05 عصر
گرفتن یه فیلد عددی به جای فیلد کاراکتری به عنوان PK باعث افزایش performance میشه؟ به خصوص توی join کردن؟
reza_rad
سه شنبه 07 اسفند 1386, 16:58 عصر
گرفتن یه فیلد عددی به جای فیلد کاراکتری به عنوان PK باعث افزایش performance میشه؟ به خصوص توی join کردن؟
درسته.چونکه فیلد کاراکتری توی join ها match کردنش با فیلدهای دیگه بیشتر زمان می بره.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.