۰۳-آذر-۱۳۹۴, ۱۵:۲۶:۱۹
سلام
من یه نظر خواهی میخوام
فکر کنید یک سایت حراجی با زبان 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
معایب:
پیچیدگی کد نویسی و احتمال بروز خطا
شما پیشنهادی دارین ؟
من یه نظر خواهی میخوام
فکر کنید یک سایت حراجی با زبان 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
معایب:
پیچیدگی کد نویسی و احتمال بروز خطا
شما پیشنهادی دارین ؟