আমি একটি ডেস্কটপ অ্যাপ্লিকেশন তৈরি করছি যা মেঘের মধ্যে থাকা ডেটা ধরে রাখে। আমার উদ্বেগের একটি বিষয় হ'ল অ্যাপ্লিকেশনটিতে কোনও আইটেম সম্পাদনা করা এবং ডেটাটি বাসি হয়ে যাওয়ার ফলে কিছুক্ষণের জন্য রেখে দেওয়া। 2 জন ব্যক্তি একই সময়ে একই আইটেমটি সম্পাদনা করার চেষ্টা করলে এটি স্পষ্টতই ঘটতে পারে। যখন তারা তাদের সম্পাদনা শেষ করে এবং ডেটা সংরক্ষণ করতে চায় তখন আমার প্রয়োজন হয় বর্তমানে ডাটাবেসে বিদ্যমান যা ওভাররাইট করা দরকার বা তারা শেষ পরিবর্তনের পরে সম্পাদনা শুরু করেছিল এবং তাদের পরিবর্তনগুলি বাতিল করতে বাধ্য করতে পারে বা তাদের ঝুঁকির বিকল্প দিতে পারে অন্য কারোর পরিবর্তনগুলি ওভাররাইট করা।
আমি একটি ক্ষেত্র যোগ সম্পর্কে চিন্তা is_locked
এবং lock_timestamp
ডিবি টেবিলে। যখন কোনও ব্যবহারকারী আইটেমটি সম্পাদনা করা শুরু করে তখন সারিটি is_locked
সত্যে পরিবর্তিত হয়ে বর্তমান সময়ের জন্য লক টাইমস্ট্যাম্প সেট করে। তারপরে আমার কাছে কিছু সময় লাগবে যার জন্য লকটি রাখা হয় (উদা। 5 মিনিট)। অন্য কেউ যদি আইটেমটি সম্পাদনা করার চেষ্টা করেন তারা আইটেমটি লক করা আছে এবং যখন লকটি স্বয়ংক্রিয়ভাবে শেষ হবে তখন একটি বার্তা পাবেন। লক সম্পাদনার সময় ব্যবহারকারী দূরে চলে গেলে অপেক্ষাকৃত স্বল্প সময়ের পরে স্বয়ংক্রিয়ভাবে মেয়াদ শেষ হয়ে যায় এবং একবার ব্যবহারকারীকে সতর্ক করা হবে যে লকটির মেয়াদ শেষ হয়ে গেছে এবং ডেটা রিফ্রেশ হওয়ার পরে সম্পাদনা পুনরায় চালু করতে বাধ্য করা হবে।
ওভাররাইটিং বাসি ডেটা রোধ করার জন্য এটি কি ভাল পদ্ধতি হবে? এটি কি ওভারকিল (আমি আশা করি না যে অ্যাপ্লিকেশনটি একক অ্যাকাউন্টে একযোগে কয়েকটি বেশি লোক ব্যবহার করবে) used
(আমার আর একটি উদ্বেগের বিষয় হ'ল 2 জন একই আইটেমটির জন্য একটি লক পেয়েছে, তবে আমি বিশ্বাস করি যে এটি এমন একটি জাতি শর্ত যা আমি স্বাচ্ছন্দ্যবোধ করি))