मैं डेटाबेस इकाइयों के लिए एक अद्वितीय आईडी उत्पन्न करने के लिए जावा में System.currentTimeMillis()
(जो long
पूर्णांक देता है) का उपयोग कर रहा हूं क्योंकि मुझे लगता है कि किसी भी समय इन ओवरलैप के लिए यह संभव नहीं है।एक अद्वितीय डेटाबेस आईडी उत्पन्न करने के लिए System.currentTimeMillis() का उपयोग करने के लिए सुरक्षित?
क्या यह एक सुरक्षित धारणा है?
उदाहरण के लिए, इस समय मैं यह मिलता है:
1296691225227
विफलता संभावना के संदर्भ में, मुझे शक है मिलीसेकेंड दृष्टिकोण इकाई परीक्षण से बच जाएगा। – Dolph
@ डॉल्फ़ - या सिस्टम लोड परीक्षण। निश्चित रूप से यह नहीं होना चाहिए ... यदि आप उन्हें सही तरीके से कर रहे हैं। –
मुझे यूयूआईडी बहुत पसंद है हालांकि यह काफी अक्षम है (समझ में आया है कि कठिन तरीका ...) स्टोर करने का सामान्य तरीका UUID.toString() है जो 36bytes लंबा है (आमतौर पर वर्चर (36) जैसा कुछ मैप किया जाता है)। डीबी इंडेक्स को स्मृति में रखा जाना चाहिए - सूचकांक जितना बड़ा होगा, उतनी अधिक मेमोरी की आवश्यकता होगी, इंडेक्सिंग धीमा हो जाएगा, आदि। मैं कुछ उच्च-स्तरीय योजना w/क्लस्टरिंग बिट्स और 'लांग' आईडी का उपयोग करने की सलाह दूंगा। – bestsss