PDA

View Full Version : sting primary key



TeRMiNaT00o00R
شنبه 02 آذر 1392, 16:41 عصر
سلام
اگر کلید اصلی در جدول ما از نوع string باشه مشکلی پیش میاد؟ یا از نوع کارایی تعصیری داره ؟

حمیدرضاصادقیان
شنبه 02 آذر 1392, 19:52 عصر
سلام.
معمولا پیشنهاد میشه PK از نوع عددی باشه.چون معمولا این نوع به صورت پیش فرض Clustered Index نیز هست و کاربران در این مورد دقتی نمی کنند و در Page Index های شما تاثیر گذاشته و کارایی شما کاهش پیدا خواهد کرد.
بهتره یک فیلد ID از نوع Identity رو به عنوان PK در نظر بگیرید.

TeRMiNaT00o00R
یک شنبه 03 آذر 1392, 01:32 صبح
ممنونم از راهنمایتون . چون در یک سناریو که شامل یک سری قطعات هر کدوم برای خودشون کد داشتن که این کد ها رو خوده کارخونه در نظر گرفته بود این کد ها به صورت string بودن . پس با تعریف شما بهتر یک کد از نوع Identity برای pk در نظر بگیرم و کد قطعات رو به عنوان یک فیلد استرینگ در نظر بگیرم ؟ برای این اینو میپرسم چون کد قطعات خودش امکان کد بودن رو داره چون یکتاست کلا برای این موارد باید به چه شکل عمل کرد ؟

حمیدرضاصادقیان
یک شنبه 03 آذر 1392, 08:04 صبح
عرض کردم.Best practice موردی هست که گفتم. میتونید یک Unqiue Constraint هم روی فیلد کد در نظر بگیرید که مطمئن باشید هیچوقت تکراری نخواهد شد ولی تمام Join های شما براساس Id صورت خواهد پذیرفت.
اینجوری اگر این فیلد ID نیز جز Index های شما قرار بگیره حجم Index Page های شما کاهش پیدا میکنه و باعث میشه در هر Page تعداد بیشتری رکورد قرار بگیره و در نتیجه سرعت کوئری های شما افزایش خواهد یافت.