کلید اصلی جدول دیتابیس auto increament باشه بهتره یا رشته رندوم؟
سلام.من به هر سایتی که سر میزنم،
میبینم آیدی کاربران،پست ها،خبر ها و...به صورت (یک عدد یا یک رشته یا ترکیبی از این دو) هست،در حالی که من همیشه آیدی کاربر هام رو به صورت auto increament میزارم....برام سوال پیش اومده که آیا این کارم اشتباهه؟ آیا روش اونا امن تر یا بهتر هست؟اصلا ضرورتی داره منم اینکار رو بکنم؟یه نرم افزار اندروید دارم که در لاگین آیدی کاربر رو از سرور دریافت میکنه،و با کمک این آیدی کاربر هر روز جایزه ای به صورت تعدادی الماس دریافت میکنه،اینکه آیدی کاربر من auto increament میتونه مشکلی ایجاد کنه و سمت اندروید ایدی کاربر تغییر داده بشه و الماس اضافه دریافت بشه؟؟؟؟؟؟
با سلام
طبق تجربه شخصی من بلا استثناء هر جدولی باید یه فیلد auto increament داشته باشه، بعدا بدرد میخوره، این شناسه یک تای اون خط جدول شماس.
چیزی که توی وبسایت ها میبینید username کاربر هست، هیچ لزومی نداره که یه کاربر فقط یه فیلد یکتا داشته باشه، توی اپ های بزگتر ممکنه یه کاربر مثلا، یوزرنیم، ایمیل، شماره تلفن یکتا هم داشته باشه، که معمولا یوزر نیم فقط به بقیه نشون داده میشه
حالا در مثال شما بهرین راه حل استفاده از api key هست، api یک رشته رندم هست که به کاربر اختصاص میدید، مثلا 4fs6df4sdfsf54vsv :)
اینو رندوم ایجاد میکنید، و قتی کاربر با یوزر و پسورد لاگین کرد در جواب لاگین، این رشته رو میدید به کاربر و از این به بعد فقط این رشته رو به سرور میفرستید و با اون شناسایی میکنید کاربرو.
واسه اپ شما یه همچین چیزی میشه:
اپ میگه:
'login 'user' 'pass
سرور میگه:
login success, in 'api_key' ro begir
بعد دخیرش میکنه تو درخواست بعدی اپ میگه:
server dada seke bede inam 'api_key' k bedooni khodamam
سرور :
SELECT id FROM users where api_key=api_key
ایدی رو میگیره
UPDATE users SET coin=coin+1
بعدم جواب میده، خلاصشو گفتم دیگه کاملش باس بکنی
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .