انجمن ایران پی اچ پی
روشی برای جلو گیری از تکرار id - نسخه قابل چاپ

+- انجمن ایران پی اچ پی
+-- انجمن: پی اچ پی/PHP (https://forum.iranphp.org/Forum-%D9%BE%DB%8C-%D8%A7%DA%86-%D9%BE%DB%8C-PHP)
+--- انجمن: کدنویسی (https://forum.iranphp.org/Forum-%DA%A9%D8%AF%D9%86%D9%88%DB%8C%D8%B3%DB%8C)
--> +--- موضوع: روشی برای جلو گیری از تکرار id



روشی برای جلو گیری از تکرار id - navids_69 - ۱۳۹۱ آذر ۰۷

سلام بنظر شما بهترین روش برای اینکه id در یک جدول تکرای نشه چی هست؟

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


RE: روشی برای جلو گیری از تکرار id - undefined - ۱۳۹۱ آذر ۰۷

شما وقتی رکورد درج میکنید طبیعتا باید یک فیلد منحصر به فرد با نام ID و یا هر اسم دیگه ای داشته باشه که به صورت خودکار پر میشه.
از اون فیلد نمیتونید استفاده کنید؟

اگر شماره فاکتور ها قالب خاصی دارن میتونید همین فیلد ID رو باهاش ترکیب کنید تا منحصر به فرد شه


RE: روشی برای جلو گیری از تکرار id - hamid_80386 - ۱۳۹۱ آذر ۰۷

در ضمن میتونید فیلد شماره فاکتور رو Uniqe کنید، اینطوری تحت هیچ عنوانی تکراری نمیشن


RE: روشی برای جلو گیری از تکرار id - masoud1990 - ۱۳۹۱ آذر ۰۷

من فکر میکنم شما با AUTO_INCREMENT آشنا نیستید یک فیلد به نام id توی جدولتون طراحی کنید و اون رو از نوع int و با قابلیت AUTO_INCREMENT ایجاد کنید به این صورت به هیچ وجه شما id تکراری ندارید


RE: روشی برای جلو گیری از تکرار id - phpgangster - ۱۳۹۱ آذر ۰۸

سلام دوست عزیز.
دقیقا برای id باید از AUTO_INCREMENT استفاده کنی. اما اگه نمی خوای از این قضیه استفاده کنی یکی از راه ها استفاده از
کد پی‌اچ‌پی:
date(YmdHis
وقتی می خوای فاکتور جدید اضافه کنی زمانی که فاکتور داره ایجاد میشه را در id دخالت بده...


RE: روشی برای جلو گیری از تکرار id - navids_69 - ۱۳۹۱ آذر ۰۸

سلام مشکل AUTO_INCREMENT و یا Uniqe نیست

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

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

این راه فکر میکنم بهتر باشه اگر کسی نظری داره بگه ممنون می شم


RE: روشی برای جلو گیری از تکرار id - masoud1990 - ۱۳۹۱ آذر ۰۸

اره اگر بخوای قبلش به کاربر نشون بدی باید همین کار رو بکنی یعنی اول یه اینسرت بعدش یه آپدیت
یه کرون هم بزار مثلا ساعت 3-4 صبح که کسی تو سایت نیست اگر به هر دلیل اینسرتی انجام شده و ایدی گرفته و آپدیت نشده پاکش کنه که جای الکی نگیرهBig Grin