PDA

View Full Version : حرفه ای: index و primary_key



binyaft
دوشنبه 25 مرداد 1389, 10:38 صبح
سلام به همه دوستان
کسی میدونه index و primary_key چی هستند؟؟؟ چه کاربردی دارند ؟؟؟ و در کجا بهتره از اونها استفاده کنیم؟؟؟

xoogle.ir
دوشنبه 25 مرداد 1389, 10:56 صبح
از primary key برای دسترسی به رکورد های دیتابیس استفاده میشه و حتما باید unique یا یکتا باشه مثلا توی سایت شما اعضا با نام کاربری یکتا عضو میشن و شما میتونید از نام کاربری اونا در جدولی که اطلاعات شخصی شون رو ذخیره میکنید به عنوان primary key استفاده کنید.

یا اینکه هر کاربر میتونه تعدادی مقاله برای سایت شما ارسال کنه و توی جدول مقالات شما برای هر مقاله یک آیدی منحصر به فرد تولید میکنید که با اون آیدی بتونید به مقالات دسترسی داشته باشید اینجا آیدی تولید شده برای هر مقاله نقش primary key رو بازی میکنه و نام کاربری شخصی که مقاله رو ارسال کرده نقش foreign key رو چون ارتباط جدول مقالات با جدول کاربران رو فراهم میکنه.

index رو هم کاملا نمیدونم چیه فقط میدونم که اگر فیلد هایی که زیاد ازشون query میگیری رو ایندکس کنی سرعت انجام query بیشتر میشه.

bestirani2
دوشنبه 25 مرداد 1389, 11:14 صبح
primary key یعنی کلید اصلی
در بین فیلدهایی که هست یک فیلد از بقیه خاصتر هست و یکتا هست که اون را باید به عنوان کلید اصلی در نظر گرفت مثلاً مشخصات هر فرد شماره شناسنامه، دانشجو، کد دانشجویی و یا عضو کتابخانه، شماره عوضیت کلید اصلی هست
حالا به چه دردی میخوره
م بیایم بگیم دنبال فردی میگردم به نام و نام خانوادگی غضنفر و نام پدر عبدالله و ... راحتتر هستیم یا بگیم شماره شناسنامه فلان
در پایگاه داده ای مثل اوراکل اجباراً باید کلید اصلی را داشته باشید
در مای اس کیو ال اجبار نشده ولی همیشه برای هر جدول حتماً داشته باشید
index هم یک شاخص برای اعداد هست
در صورتی که تعداد Select ما زیاد هست، به نوعی شاخص گذاری می شود که بتونیم سریع به فیلدها دسترسی داشته باشیم که در مقابل full text هست که برای رشته ها هست که البته با این کار سرعت insert و update ما کم می شود.
هم چنین شاخص دیگری به اسم unique هست که باعث منحصر به فرد بودن می شود یعنی اینکه برای فیلدی که این را تعریف کردیم اگر بخواهیم 2 بار مقدار 6 را وارد کنیم با مشکل رو به رو می شویم

binyaft
دوشنبه 25 مرداد 1389, 11:40 صبح
سلام من primary_key رو فعال کردم روی فیلد ID اما primary key از 7 شروع کرده به شماره گذاری
اول درست بود ولی الان خراب شده ، چه کار کنم

bestirani2
دوشنبه 25 مرداد 1389, 12:20 عصر
سلام من primary_key رو فعال کردم روی فیلد ID اما primary key از 7 شروع کرده به شماره گذاری
اول درست بود ولی الان خراب شده ، چه کار کنم
شماره گذاری افزایشی ربطی به کلید اصلی نداره و به خاطرauto increment هست
وقتی تو یک چیزی رو پاک میکنی دیگه به عیقب بر نمیگرده
یعنی تا 100 پر کنی و بعد پاک کنی، شماره بعدی 101 هست
در صورتی که میخواهی به عقب برگرده یا از truncate table tname استفاده کن و یا alter