آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کلید اصلی جدول دیتابیس auto increament باشه بهتره یا رشته رندوم؟

marka  6 سال پیش  6 سال پیش
0 0

سلام.من به هر سایتی که سر میزنم،
میبینم آیدی کاربران،پست ها،خبر ها و...به صورت (یک عدد یا  یک رشته یا ترکیبی از این دو) هست،در حالی که من همیشه آیدی کاربر هام رو به صورت auto increament میزارم....برام سوال پیش اومده که آیا این کارم اشتباهه؟ آیا  روش اونا امن تر یا بهتر هست؟اصلا ضرورتی داره منم اینکار رو بکنم؟یه نرم افزار اندروید دارم که در لاگین آیدی کاربر رو از سرور دریافت میکنه،و با کمک این آیدی کاربر هر روز جایزه ای به صورت تعدادی الماس دریافت میکنه،اینکه آیدی کاربر من auto increament میتونه مشکلی ایجاد کنه و سمت اندروید ایدی کاربر تغییر داده بشه و الماس اضافه دریافت بشه؟؟؟؟؟؟

0 0
autoincreament بهتره اما هواستون باشه اگر از random استفاده میکنید اون فیلد رو Primarykey بزارید. (6 سال پیش)
0 0
ببخشد در صورت autoincreament هم باید primarykey بزارید اما این که مشکلی ایجاد نمیکنه. (6 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
منصور  6 سال پیش
0 0

با سلام

طبق تجربه شخصی من بلا استثناء هر جدولی باید یه فیلد 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
 بعدم جواب میده، خلاصشو گفتم دیگه کاملش باس بکنی 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .