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

سلام دوستان.
حدود یکماه پیش سخنگوی یکی از بانک ها توی تلویزیون این جمله رو گفت:

"ما چون دیتابیسمون سنگیه، از شناسه ها پشت سر هم استفاده نمیکنیم ( منظورش حالت دنباله ای هست)

ما برای تولید هر شناسه ( آیدی id) برای تراکنش ها، از الگوریتمی استفاده میکنیم که یک متن طولانی درست میکنه و احتمال تکراری بودن این متن که برای شناسه هر تراکنش استفاده میشه، یک در یک میلیونم هست…"

این جمله رو گفت و من اعصابم خراب شد :smile:.

اخه یعنی چی احتمال تکراری بودن یک در یک میلیونم؟
اگر اون یک در یک میلیونم اتفاق بیفته چی می‌شه؟

در اکثر database های NoSQL از UUID به عنوان id اصلی استفاده میکنند که حتی در database های relational هم ایده بدی نیست و
احتمال تصادف و یکسان بودن دو uuid بسیار کم هستش

Only after generating 1 billion UUIDs every second for the next 100 years, the probability of creating just one duplicate would be about 50%. Or, to put it another way, the probability of one duplicate would be about 50% if every person on earth owned 600 million UUIDs.

3 پسندیده

“یک در میلیون” نمیتونه درست باشه مگر اینکه از entropy خیلی ضعیفی استفاده شده باشه که بعید بنظر میاد. احتمالا فقط جمله بندیش اینطور بوده و فکرشو نمیکرده شما بهش گیر بدی :wink:

https://tools.ietf.org/html/rfc4122

4 پسندیده

تا حالا چنین چیزی گزارش نشده که uuid تکراری باشه؟

اگر تکراری باشه دیتابیس منفجر میشه؟ :joy:

نه داده برای کسی دیگه به اشتباه روش نوشته میشه
بعضی دیتابیس ها این تصادف قبل از ورود داده جلوگیری میکنند و خطا برمیگردونند

3 پسندیده