نمایش نتایج 1 تا 4 از 4

نام تاپیک: فرمول تولید id برای محصولات

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    178

    Question فرمول تولید id برای محصولات

    سلام

    من یه نظر خواهی میخوام

    فکر کنید یک سایت حراجی با زبان php نوشتم

    صاحب آن کالا در سایت ما ثبت نام میکنه

    مشخصات و عکس کالای خودش رو در سایت ما ثبت میکنه و یک id به آن اختصاص دادخ میشه

    درخواست کاربر به پنل ادمین فرستاده میشه اگر ادمین این کالا رو تایید کرد در سایت نمایش داده بشه



    اما (اینجاست که کمک میخوام یه راه اصولی معرفی کنید)

    id این محصول چطور تولید کنم؟



    راه اول:

    تولید id توسط ویژگیAUTO_INCREMENT جدول

    در یک table به نام temp محصولاتی که هنور به تایید مدیر نرسیده رو ذخیره کنم و بعد از تایید توسط مدیر سایت اطلاعات بیاد در table اصلی ذخیره بشه و ستون id در table اصلی با کمک ویژگیAUTO_INCREMENT خودکار id تولید کنه



    معایب:

    در این روش مثلا اگر در table اصلی ما 10 تا سطر وجود داشته باشد

    کاربر یکی از کالا های خودش از سایت حذف کنه مثلا سطر 3

    در جدول عملا id شماره 3 بلا استفاده میمونه و برای کالای جدید id شماره 11 تولید میکنه

    پس بدون دلیل دیتابیس حجمش بالا میره





    راه دوم:

    تولید id توسط خودمون

    چه محصولات تایید شده توسط مدیر چه محصولات تایید نشده در یک table ذخیره کنیم

    به این صورت که یک ستون در table وجود دارد به نام flag

    اگر flag=0 تایید نشده

    اگر flag=1 تایید شده



    فرمول تولید id برای محصولات تایید نشده:

    زمانی که یه محصول در سایت ثبت میشه در دیتابیس چک کنه

    کوئری بگیر تعداد سطرهایی که flag=0 هست پیدا کن

    id جدید = تعداد سطرها +1



    فرمول تولید id برای محصولات تایید شده:

    زمانی که یه محصول تایید شده در دیتابیس چک کنه

    کوئری بگیر تعداد سطرهایی که flag=1 هست پیدا کن

    id جدید = تعداد سطرها +1



    معایب:

    پیچیدگی کد نویسی و احتمال بروز خطا







    شما پیشنهادی دارین ؟

  2. #2
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: فرمول تولید id برای محصولات

    شما از همون flag استفاده کنید ولی نیاز نیست خودتون ID را تولید کنید ! ID را بگذارین Auto Increment ایجاد بشه.

    در این روش مثلا اگر در table اصلی ما 10 تا سطر وجود داشته باشد
    کاربر یکی از کالا های خودش از سایت حذف کنه مثلا سطر 3
    در جدول عملا id شماره 3 بلا استفاده میمونه و برای کالای جدید id شماره 11 تولید میکنه
    پس بدون دلیل دیتابیس حجمش بالا میره
    داشتم میخوندم گفتم نکنه میخوای نبگین ID شماره ۳ بلا استفاده مونده و این حرفا (کلا اهمیتی نداره و مهم نیست id چی باشه و چند باشه) اما حرف شما عجیب تر شد و میگین حجم database میره بالا. دوست عزیز وقتی شما نوع داده را مثلا int میگیرین حالا چه ۳ ذخیره کنید و چه ۱۱ بالاخره database ۴ بایت از شما میگیره . تفاوتی در حجم نداره ! کلا نگران این خجم نباشین چون اون شکلی که شما نگرانش هستین جای نگرانی نداره !

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    178

    نقل قول: فرمول تولید id برای محصولات

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    شما از همون flag استفاده کنید ولی نیاز نیست خودتون ID را تولید کنید ! ID را بگذارین Auto Increment ایجاد بشه.


    داشتم میخوندم گفتم نکنه میخوای نبگین ID شماره ۳ بلا استفاده مونده و این حرفا (کلا اهمیتی نداره و مهم نیست id چی باشه و چند باشه) اما حرف شما عجیب تر شد و میگین حجم database میره بالا. دوست عزیز وقتی شما نوع داده را مثلا int میگیرین حالا چه ۳ ذخیره کنید و چه ۱۱ بالاخره database ۴ بایت از شما میگیره . تفاوتی در حجم نداره ! کلا نگران این خجم نباشین چون اون شکلی که شما نگرانش هستین جای نگرانی نداره !
    به نظر شما int بزارم یا big int برای id خیالم راحت باشه

  4. #4
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: فرمول تولید id برای محصولات

    موضوع خیال راحت بودن نیست ،‌موضوع اینه که باید کمترین نوع داده از نظر حجم را بگذارین. اگه ببشتر از ۲ میلیارد رکورد دارین بگذارین bigint وگرنه همون Int کفایت میکنه.
    میتونین اینجا ببینین هر کدوم تا چه عددی پشتیبانی میکنن.

تاپیک های مشابه

  1. سوال: نظرتون درمورد اصول سئو سازی لینکها در جوملا چیه؟
    نوشته شده توسط i-php-i در بخش PHP
    پاسخ: 0
    آخرین پست: جمعه 16 اردیبهشت 1390, 19:18 عصر
  2. یک سوال در مورد محصولات بورلند و آینده محصولات
    نوشته شده توسط abazzi در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 0
    آخرین پست: چهارشنبه 18 فروردین 1389, 01:52 صبح
  3. پاسخ: 13
    آخرین پست: پنج شنبه 03 مرداد 1387, 20:53 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •