مشکل عدم اضافه شدن منظم اطلاعات در دیتابیس
سلام...
من یک دیتابیس درست کردم و یکسری اطلاعات رو با php وارد اون می کنم و همچنین حذف...
نمی دونم چرا مواقعی که اطلاعات وارد جدول می کنم ، بجای اضافه شدن در ابتدای جدول ، میره مثلا در وسط قرار می گیره... چجوری مشکل رو حل کنم؟
عکس اش گذاشتم که بهتر متوجه بشین:
https://uupload.ir/files/whpm_data.jpg
نقل قول: مشکل عدم اضافه شدن منظم اطلاعات در دیتابیس
باید ببینی مرتب سازیشون بر چه اساسیه
معمولا تیبل ها فیلد id دارن که افزایشی هست و براساس اون فیلد مرتب میشن داده ها , در نتیجه جدید ترین فیلد ها میرن آخر جدول
نقل قول: مشکل عدم اضافه شدن منظم اطلاعات در دیتابیس
نقل قول:
نوشته شده توسط
plague
باید ببینی مرتب سازیشون بر چه اساسیه
معمولا تیبل ها فیلد id دارن که افزایشی هست و براساس اون فیلد مرتب میشن داده ها , در نتیجه جدید ترین فیلد ها میرن آخر جدول
مرسی ؛
خب هر بار که به یک رکورد به جدول اضافه می کنم ، با یک آی دی جدید که افزایشی هست اضافه میشه...ولی وقتی رکوردی حذف میشه هیچ تناسب و قانونی بین این آی دی ها نیست و ممکنه مثلا یکیش عدد 1 باشه و دیگری 600.
حالا نمی دونم چجوری باید مشکل رو حل کرد
نقل قول: مشکل عدم اضافه شدن منظم اطلاعات در دیتابیس
جای دیگه نگاه کردم ، نوشته مهم نیست اطلاعات چجوری ذخیره میشه...و ظاهرا موقع query گرفتن باید مرتب سازی بشه ، اینطوری که سخت میشه
نقل قول: مشکل عدم اضافه شدن منظم اطلاعات در دیتابیس
من متوجه نمیشم مشکلت چیه دقیقا
شما اگه شناسه های 1 و2و6 داشته باشید 1 اول و2 وسطه و 6 آخر
اگر 1 و 500 و 600 داشته باشی باز هم 1 اوله 500 وسط و 600 آخر
اصلا اهمیتی نداره که چی حذف شده چون اعداد آیدی از 1 شروع میشن و میرن بالا
مرتب سازی دیفالت بر اساس آیدی نزولی هست وموقع کوئری گرفتن هم اگه مرتب سازی نکنی به همین شکل خروجی میگیری
نقل قول: مشکل عدم اضافه شدن منظم اطلاعات در دیتابیس
نقل قول:
نوشته شده توسط
plague
من متوجه نمیشم مشکلت چیه دقیقا
شما اگه شناسه های 1 و2و6 داشته باشید 1 اول و2 وسطه و 6 آخر
اگر 1 و 500 و 600 داشته باشی باز هم 1 اوله 500 وسط و 600 آخر
اصلا اهمیتی نداره که چی حذف شده چون اعداد آیدی از 1 شروع میشن و میرن بالا
مرتب سازی دیفالت بر اساس آیدی نزولی هست وموقع کوئری گرفتن هم اگه مرتب سازی نکنی به همین شکل خروجی میگیری
فرض کنید ده تا رکورد دارم از یک تا ده:
1
2
3
4
5
6
7
8
9
10
در حالت عادی که من این ها رو اضافه می کنم به جدول ، منظم از یک تا ده اضافه می شن و مشکلی نیست...
ولی حالا فرض کنید من یکسری از رکوردها رو پاک کنم و نتیجه مثلا اینطوری بشه:
1
3
7
9
حالا اگر یک رکورد جدید اضافه کنم ، این نمیره بعد از 9 قراره بگیره ، میره یک جای تصادفی توی جدول می شینه! نمی دونم چرا اینطوری هست:
1
3
10(رکورد جدید)
7
9
نقل قول: مشکل عدم اضافه شدن منظم اطلاعات در دیتابیس
نوع انجین تیبل هات رو چک کن InnoDB باشه , InnoDB بر اساس کلید پریماری یا همون id مرتب میکنه
شما احتمالا داری از یک انجین قدیمی احتمالا myisam استفاده میکنی که براساس اینسرت مرتب میکنه
همیشه تیبل هات رو InnoDB بزار
نقل قول: مشکل عدم اضافه شدن منظم اطلاعات در دیتابیس
مرسی ؛
من این کوئری رو وارد کردم برای تغییر موتور تیبل ، فک کنم مشکل برطرف شد ، بسیار ممنون از راهنمایی.
ALTER TABLE table-name ENGINE = InnoDB;