واضح آرشیو وب فارسی:سایت ریسک: t=34187">سوال درباره Data Base r_hosseinkhani 23 تير 1384, 07:50باسلام مي خواستم بدونم فرق unique و primary و index و full text چيه؟ باتشكر r_hosseinkhani 24 تير 1384, 10:46كسي نمي دونه؟ miladmovie 24 تير 1384, 13:38برای من هم سوال شده : unique و primary و index و هر کدوم به چه چیزی توی SQL SERVER مربوط می شن ( یعنی توی اونجا معادل هر کدوم چیه ! ) oxygenws 24 تير 1384, 19:51تقریبا هیچ کدوم از اینها به هم مربوط نیستند!! unique بودن که کلا یه چیز دیگست.... یعنی تو اون ستون نمی شه مقدار تکراری داشت، به هر نحوی.... و اگر چنین بشه، بانک ارور بر میگردونه. index ..... وقتی رو یک ستون ایندکس تعریف میشه، اون ستون راحت تر جستجو میشه. (عموما سرعت insert کم میشه، سرعت update فرقی نمی کنه، سرعت select خیلی زیاد میشه) توجه کنید که یک ستون توی بانک، عموما 1 بار نوشته میشه و هزاران بار خونده میشه. چند نکته.... 1- ایندکس گذاشتن، حجم بانک رو بالا می بره. 2- ایندکس گذاشتن، تا یه حدی سودمند می باشد، اگر زیاد بشه، ضرر خواهد داشت. (البته در 100% مواقع چنین نیست) 3- به طور ساده میشه گفت، در ستون هایی که در قسمت where کوئری های select ارسال میشن، باید ایندکس گذاشت. primary به کلید اصلی یک جدول گفته میشه (میتونه شامل یک یا چند ستون باشه) این کلید ---قطعا--- یونیک می باشد، اما یک فیلد یونیک، حتما کلید اصلی (primary) نیست. fulltext هم برای ستون های متنی در MySQL مطرح میشه و نوعی جستجوی پیشرفته در اون ستون رو (مثل کوئری هایی که به گوگل ارسال میشه) روی اون ستون خاص فعال می کنه. miladmovie 24 تير 1384, 21:06خب حالا وقتی primary می شه چه امکانی می ده که unique نمی ده ! شاید وقتی جدوامون با innodb باشه مشخص می شه ؟ ! oxygenws 24 تير 1384, 22:30در منطق پایگاه داده، هر جدول که نیازی به فراخوانی داره (حالا چه توسط یک کاربر یا یک جدول دیگه) باید دارای کلید اصلی باشه، در حقیقت مشخصه هر سطر رو همون کلید اصلی میگن. حالا اینکه دقیقا در خود بانک MySQL (منظورم همون جداول MYIASAM هست) چه تفاوتی دارند، نمی دونم. اینو یادم رفت بنویسم..... البته اون موردی که گفتم..... که کلید اصلی می تونه شامل چندین ستون باشه، در یونیک نداریم! r_hosseinkhani 25 تير 1384, 06:55خيلي ممنون ولي آخر فرق unique و primary را نفهميدم. oxygenws 25 تير 1384, 11:06من دیگه نمی دونم چطوری توضیح بدم که بفهمی.... فکر کنم اگر با این پیش فرض ها بری دو تا مقاله انگلیسی بخونی، مشکلت حل بشه... :) موفق باشی... Salman_MP 25 تير 1384, 14:14سلام خدمت دوستان عزيز؛ عرض شود كه تفاوتهايي است مهم مابين كليد (پرايمري) و يكتا (يونيك) و از آنها يكي اينكه هر كليدي حتماْ يكتا است ولي هر يكتايي حتماْ كليد نيست (كه دوستمون هم گفته بود) و ديگري اينكه براي ايجاد ارتباط مابين دو يا چند جدول و به طور دقيق تر استفاده از كليدهاي خارجي (در جدولهاي ديگر براي اشاره كردن به جدول مورد نظر) بايد فيلد كليد داشته باشيم ولي يونيك بودن فقط يه خاصيت براي يك ستون هست و قابليتي به جدول اضافه نمي كنه. oxygenws 25 تير 1384, 18:14مورد دوم رو هم من گفتم، ولی از اونجایی که چنین چیزی در جداول MYISAM در MySQL نداریم، در حقیقت، ---فعلا--- چنین چیزی وجود نداره. Majid 25 تير 1384, 20:26فکر کنم تعریف راحتتر اینطوری باشه که : primary = index + unique یعنی یک فیلد که Primary باشه هم یکتا هستش و هم index مجید r_hosseinkhani 26 تير 1384, 21:15thanx a lot.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 442]