مشکل در فیلد a_i هنگام پاک کردن رکورد

DaDaDooDoo

کاربر VIP
سلام .
اگر مثلاً قیلد ID در جدول A_I باشه و مثلاً 10 تا رکورد داریم و رکورد 5 رو پاک می کنیم دیگه رکوردی با ID پنج نخواهیم داشت ، یا اگر رکورد 10 رو پاک کنیم و رکورد جدیدی اضافه کنیم ID اون می شه 11 ( به جای 10 ) ، واسه این مورد دوم میشه از ALTER TABLE استفاده کرد ، اما واسه مشکل اول چی ؟ تنها راه حلی که من پیدا کردم اینه که فیلد ID رو پاک کنیم و دوباره بسازیم که در واقع با این کاربه نوعی reset می کنیم فیلد ID رو ، اما آیا راه منطقی تری وجود نداره ؟
 

shahinshyd

Member
سلام .
اگر مثلاً قیلد id در جدول a_i باشه و مثلاً 10 تا رکورد داریم و رکورد 5 رو پاک می کنیم دیگه رکوردی با id پنج نخواهیم داشت ، یا اگر رکورد 10 رو پاک کنیم و رکورد جدیدی اضافه کنیم id اون می شه 11 ( به جای 10 ) ، واسه این مورد دوم میشه از alter table استفاده کرد ، اما واسه مشکل اول چی ؟ تنها راه حلی که من پیدا کردم اینه که فیلد id رو پاک کنیم و دوباره بسازیم که در واقع با این کاربه نوعی reset می کنیم فیلد id رو ، اما آیا راه منطقی تری وجود نداره ؟

سلام
تا اونجایی که من میدونم امکان تغییر شماره ها وجود نداره چون بطور خودکار شماره گذاری میشه
همچنین اگر داری روی لوکال هاست تمرین میکنید باید بگم که در زمان انتقال بانک روی سرور اینترنت تمام این شماره ها از اول شروع میشه!
 

my1zarb

Member
سلام .
اگر مثلاً قیلد id در جدول a_i باشه و مثلاً 10 تا رکورد داریم و رکورد 5 رو پاک می کنیم دیگه رکوردی با id پنج نخواهیم داشت ، یا اگر رکورد 10 رو پاک کنیم و رکورد جدیدی اضافه کنیم id اون می شه 11 ( به جای 10 ) ، واسه این مورد دوم میشه از alter table استفاده کرد ، اما واسه مشکل اول چی ؟ تنها راه حلی که من پیدا کردم اینه که فیلد id رو پاک کنیم و دوباره بسازیم که در واقع با این کاربه نوعی reset می کنیم فیلد id رو ، اما آیا راه منطقی تری وجود نداره ؟
سلام؛
توجه داشته باشید که این ، یک مشکل نیست!
و شما می تونید با همون شماره ها عملیات مورد نظر خودتون رو داشته باشید.
 

DaDaDooDoo

کاربر VIP
بله ، اما به نظر من منطقی نیست که کلاً یک شماره ID از توی db حذق بشه ...
 

my1zarb

Member
بله ، اما به نظر من منطقی نیست که کلاً یک شماره ID از توی db حذق بشه ...
درست می گید و شاید خود من هم با نظر شما هم عقیده باشم.
اما این موارد برای php و MySQL مشکل محسوب نمی شوند.
---
به هر حال برای شما می تونید کلاً از a_i استفاده نکنید و دستی کارها رو پیش ببرید.
و در هر رویداد حذف ، همه ID ها رو ریست کنید.
---
ولی این روش ، به هیچ وجه پیشنهاد نمیشه.
 

ARMIN3D.NET

New Member
شما میتونی یه فانکشن بنویسی که بره تعداد سطر ها رو بخونه و به ترتیب یه new ID جدید بهش اختصاص بده و با اون کار کنید.

مثلا اگه ترتیب اولیه باشه :

1
2
3
4
5

و بعد از ادیت بشه : ( حذف سطر 4)

1
2
3
5
6

خوب حالا new Id میشه : ( قرمز رنگ ها )

1 ==> 1
2 ==> 2
3 ==> 3
5 ==> 4
6 ==> 5

اگه نیاز به کدش داشتی بگو. من خودم تو چند تا از پروژه هام از این روش استفاده میکنم.
 

جدیدترین ارسال ها

بالا