আপনি এটি একটি ডাটাবেস ছাড়াই সমাধান করতে পারেন, তবে আমি এটির প্রস্তাব দেব না। মূলত আপনার (ব্যবহারকারী, লোকালস্টোরেশন) জোড়া রয়েছে এবং যখন কোনও প্রদত্ত ব্যবহারকারী নিজেকে / নিজেকে চিহ্নিত করেন, তার লোকাল স্টোরেজটি কোনও উপায়ে সরবরাহ করা উচিত। আপনি ব্যবহারকারীদের তাদের নিজস্ব স্টোরেজগুলি তাদের নিজস্ব মেশিনে সঞ্চয় করতে বলতে পারেন, তবে তারপরে তাদের এটিকে অন্য মেশিনে অনুলিপি করতে হবে, যা শ্রমনির্ভর এবং কখনও জনপ্রিয়তা অর্জন করতে পারে না। লোকালস্টোরেজের কাছে তাদের ডেটা রয়েছে কিনা তা নিশ্চিত করার জন্য এবং লোকালস্টোরাজের মেশিনগুলি জুড়ে মেশিনালি অনুলিপি করা পুরোপুরি ম্যানুয়ালি করার চেয়ে কিছুটা সহজ One
আপনি স্থানীয় স্টোরেজ তথ্যটি ইউআরএল-এ এনকোড করে রাখতে পারেন, তবে ইউআরএল দৈর্ঘ্যের সমস্যা ছাড়াও, এটি একটি সমস্যা হয়ে উঠতে পারে এবং সর্বদা উপস্থিত এনকোডিংয়ের সমস্যা ছাড়াও, আপনার রাউটারটিতে অ্যাক্সেস থাকাতে আপনার সম্পূর্ণ লোকালস্টোরেশন তৃতীয় পক্ষ দ্বারা পর্যবেক্ষণ করা যেতে পারে। আমি জানি আপনি বলেছেন যে ডেটা সংবেদনশীল নয়, তবে আমি আপনাকে বিশ্বাস করি যে এটি এখনও সংবেদনশীল নয় । তবে ব্যবহারকারীরা এটি ব্যবহার করার পরে, যদি এটি সুবিধাজনক হয় তবে তারা সংবেদনশীল ডেটাও সংরক্ষণ করে রাখবে বা আপনার ক্লায়েন্টদের কাছে এই জাতীয় কাজ থাকতে পারে, এমনকি আপনি বুঝতে পারেন যে সেখানে আপনার ডেটা সংরক্ষণ করতে হবে যা 100% জনসাধারণের নয়।
এগুলি ছাড়াও, বাস্তবে আপনি সিনক্রোনাইজেশনের খুব গুরুতর সমস্যার মুখোমুখি হবেন, এটি হ'ল লোকালস্টোরেজ অজ্ঞেস্টিক তৈরি করা ভাল but তবে এর আসল সংস্করণটি কী? আপনি যদি নিয়মিত 10 টি আলাদা সেশনে কাজ করেন, তবে লোকালস্টোরগুলি সিঙ্ক্রোনাইজ করা একটি সমস্যা হয়ে দাঁড়ায়। এর অর্থ লোকালস্টোরেশনকে টাইমস্ট্যাম্প করা দরকার।
সুতরাং, আপনার সর্বশেষ সংরক্ষিত লোকালস্টোরাজ সংস্করণ সংরক্ষণ করার জন্য একটি কেন্দ্রীয় জায়গা, একটি সার্ভারের প্রয়োজন হবে। কিছু অজানা কারণে যদি আপনি ডাটাবেসগুলি দ্বারা রক্ষা পেয়ে থাকেন তবে আপনি লোকালস্টোরাজগুলি ফাইলের মধ্যে সংরক্ষণ করতে পারেন যা ব্যবহারকারীকে সনাক্ত করে, যেমন
johndoe.json
এবং তারপরে আপনাকে একটি রফতানি বৈশিষ্ট্য প্রয়োগ করতে হবে যা ব্যবহারকারীর বর্তমান জেএসএন সার্ভারে প্রেরণ করবে এবং এটি একটি ফাইল এবং একটি আমদানি বৈশিষ্ট্যে সংরক্ষণ করবে, এটি ব্যবহারকারীর জন্য সঞ্চিত ফাইলটি ডাউনলোড করবে এবং লোকালস্টোরেজ আপডেট হবে তা নিশ্চিত করবে ensure সেই অনুযায়ী। একটি সিঙ্ক্রোনাইজেশন বাস্তবায়ন করে আপনি দুজনকে একসাথে করতেও পারেন।
এটি এখন পর্যন্ত সহজ, তবে যদি ব্যবহারকারীটির ইতিমধ্যে তার স্থানীয় লোকালস্টোরের ভিতরে এবং সার্ভারে কিছু কার্যকর ডেটা থাকে? সবচেয়ে সহজ পন্থা একে অপরের সাথে ওভাররাইড করা, কিন্তু কোনটি? যদি আমরা আমদানি করি, তবে স্থানীয়টিকে ওভাররাইড করা হয়, যদি রফতানি করা হয়, তবে সার্ভারে থাকা একটিটিকে ওভাররাইড করা হয়, যদি আমরা সিঙ্ক্রোনাইজ করি, তবে পুরানোটিকে ওভাররাইড করা হবে।
তবে কিছু ক্ষেত্রে আপনি একই ব্যবহারকারীর দুটি স্থানীয় স্টোরেজগুলিকে মার্জ করতে চান, তাই:
নতুন উপাদান
আমি বিশ্বাস করি যে কোনও উপাদান যদি নতুন হয় তবে এটি কিছু উপায়ে জানা উচিত যে এটি এই অধিবেশনটিতে তৈরি করা হয়েছিল, যা জানা দরকারী, কারণ এর অর্থ হ'ল যে অন্য সেশনে আমরা একত্রিত হচ্ছি, এই নতুন আইটেমটি সরানো হয়নি এবং তাই এটি যুক্ত করা স্বজ্ঞাত।
উপাদান পরিবর্তন
দুটি ক্ষেত্রে যদি একই উপাদান পৃথক হয়, তবে নতুন সংস্করণটি প্রাধান্য পাবে।
সরানো উপাদান
মজার ঘটনাটি হ'ল যখন এক সেশনে এটি সরানো হয়েছিল এবং অন্যটিতে এটি আপডেট করা হয়েছিল। এই ক্ষেত্রে আমি মনে করি যে নতুন পরিবর্তনটি বিরাজ করবে।
তবে, আপনার সর্বোত্তম প্রচেষ্টা সত্ত্বেও, ব্যবহারকারীরা এখনও (এবং আপনার সফ্টওয়্যারটি) জিনিসগুলি জগাখিচুড়ি করতে পারে, সুতরাং আপনার সার্ভারে প্রতিটি সেশনের ব্যাক আপ নেওয়া অর্থপূর্ণ।