আমি একটি সারণী থেকে রেকর্ড মুছে ফেলার জন্য সেরা পদ্ধতির সন্ধান করছি। উদাহরণস্বরূপ, আমার এমন একটি ব্যবহারকারী রয়েছে যার ব্যবহারকারীর আইডি অনেকগুলি টেবিল জুড়ে রয়েছে। আমি এই ব্যবহারকারীর এবং সমস্ত টেবিলে তার আইডি রয়েছে এমন প্রতিটি রেকর্ড মুছতে চাই।
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
এটি সমস্ত সারণী থেকে ব্যবহারকারীর সমস্ত রেফারেন্সগুলি কাজ করে এবং সরিয়ে দেয়, তবে আমি শুনেছি যে destroy_all
এটি খুব প্রক্রিয়াযুক্ত ছিল তাই আমি চেষ্টা করেছি delete_all
। এটি কেবল ব্যবহারকারীকে তার নিজস্ব ব্যবহারকারীর টেবিল থেকে অপসারণ করে এবং id
অন্যান্য সমস্ত টেবিল থেকে নকল করা হয়, তবে সেগুলিতে রেকর্ড অক্ষত থাকে। কেউ কি এই জাতীয় কাজ সম্পাদন করার জন্য সঠিক প্রক্রিয়াটি কী তা ভাগ করে নিতে পারেন?
আমি দেখতে পাচ্ছি যে সমস্ত সম্পর্কিত অবজেক্টে ফাংশনটি destroy_all
কল করে destroy
তবে আমি ঠিক সঠিক পদ্ধতির নিশ্চয়তা দিতে চাই।
delete_all
, এবং 2)destroy_all
সমস্ত রেকর্ড ইনস্ট্যান্ট করে এবং সেগুলি একবারে একটিকে ধ্বংস করে দেয়, সুতরাং খুব বড় ডেটাসেটের সাহায্যে এটি যন্ত্রণাদায়কভাবে ধীর হতে পারে।