• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
روشی برای جلو گیری از تکرار id
#1
سلام بنظر شما بهترین روش برای اینکه id در یک جدول تکرای نشه چی هست؟

من در یک قسمت از برنامه کاربر می خواد فاکتور درست کنه حالا مشکل اینجاست که اگر دوتا کاربر بخوان باهم فاکتور درست کنن id تکراری میشه یعنی همون شماره فاکتور تکراری میشه بنظر من بهترین روش اینه که هر کاربری صفحه فاکتور رو باز می کنه یک insert انجام بشه که id ها تکراری نشه و بعد هر تغییری داد update بشه و تا اینجا هیچ مشکلی نیست خب ولی اگر کاربر صفحه فاکتور رو باز کرد و یک insert خودکار انجام شد و کاربر فاکتور رو نساخت خب این insert انجام شده ولی هیچ اطلاعاتی نیست بنظر شما این یک رکورد رو چه جوری پاک کنم؟
  پاسخ
تشکر شده توسط :
#2
شما وقتی رکورد درج میکنید طبیعتا باید یک فیلد منحصر به فرد با نام ID و یا هر اسم دیگه ای داشته باشه که به صورت خودکار پر میشه.
از اون فیلد نمیتونید استفاده کنید؟

اگر شماره فاکتور ها قالب خاصی دارن میتونید همین فیلد ID رو باهاش ترکیب کنید تا منحصر به فرد شه
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : Reza hamid_80386
#3
در ضمن میتونید فیلد شماره فاکتور رو Uniqe کنید، اینطوری تحت هیچ عنوانی تکراری نمیشن
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : undefined
#4
من فکر میکنم شما با AUTO_INCREMENT آشنا نیستید یک فیلد به نام id توی جدولتون طراحی کنید و اون رو از نوع int و با قابلیت AUTO_INCREMENT ایجاد کنید به این صورت به هیچ وجه شما id تکراری ندارید
تونل ها مي گويند : راه هست؛ حتي در دل سنگ ها.Wink
استفاده از دکمه تشکر(Heart) نشان شخصیت شماست;
درگاه پرداخت 724
  پاسخ
تشکر شده توسط : Reza undefined phpgangster
#5
سلام دوست عزیز.
دقیقا برای id باید از AUTO_INCREMENT استفاده کنی. اما اگه نمی خوای از این قضیه استفاده کنی یکی از راه ها استفاده از
کد پی‌اچ‌پی:
date(YmdHis
وقتی می خوای فاکتور جدید اضافه کنی زمانی که فاکتور داره ایجاد میشه را در id دخالت بده...
یک آدم موفق میگه : سخته ولی ممکنهBlush
یک آدم ناموفق میگه: ممکنه ولی سختهHuh
  پاسخ
تشکر شده توسط : masoud1990
#6
سلام مشکل AUTO_INCREMENT و یا Uniqe نیست

مشکل اینه که کاربر وقتی توی صفحه ساخت فاکتور میره همون ابتدا شماره فاکتور نمایش داده میشه که آخرین id رو + 1 می کنه خب اگر دوتا کاربر هم زمان بخوان 2 تا فاکتور بسازند شماره فاکتور ها یکی میشه

بهترین راه اینه که هر کاربر تا صفحه فاکتور رو باز میکنه یک رکورد insert بشه و id اون رکورد به عنوان شماره فاکتور باشه که این AUTO_INCREMENT هست و اینجوری همیشه یک رکورد رزو شده وجود دارد و تکراری نیست یعنی اگر 100 تا کاربر هم همزمان بخوان فاکتور بسازند id ها تکراری نمیشه و بعد برای بستن و کامل کردن فاکتور همون رکورد که اول insert شده آپدیت میشه

این راه فکر میکنم بهتر باشه اگر کسی نظری داره بگه ممنون می شم
  پاسخ
تشکر شده توسط :
#7
اره اگر بخوای قبلش به کاربر نشون بدی باید همین کار رو بکنی یعنی اول یه اینسرت بعدش یه آپدیت
یه کرون هم بزار مثلا ساعت 3-4 صبح که کسی تو سایت نیست اگر به هر دلیل اینسرتی انجام شده و ایدی گرفته و آپدیت نشده پاکش کنه که جای الکی نگیرهBig Grin
تونل ها مي گويند : راه هست؛ حتي در دل سنگ ها.Wink
استفاده از دکمه تشکر(Heart) نشان شخصیت شماست;
درگاه پرداخت 724
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان