ডাটাবেস: রেকর্ড মুছতে বা না মুছতে


117

আমি মনে করি না যে আমি একমাত্র ব্যক্তি এই সম্পর্কে ভাবছি। আপনি সাধারণত ডাটাবেস আচরণ সম্পর্কে অনুশীলন করবেন? আপনি কি শারীরিকভাবে ডাটাবেস থেকে কোনও রেকর্ড মুছতে পছন্দ করেন? অথবা রেকর্ডটি সক্রিয় বা নিষ্ক্রিয় রয়েছে তা বোঝাতে কেবল একটি "মোছা" পতাকা বা বুলিয়ান কলাম দিয়ে রেকর্ডটি পতাকাঙ্কিত করা ভাল?


67
... ফ্ল্যাশগুলি স্ফীত এবং অপ্রয়োজনীয় ভোগ করতে, বা রেকর্ডের একটি সারণীতে মুছে ফেলার জন্য এবং সেগুলি মুছে ফেলার মাধ্যমে, ডেটাবেজে এই নোলার কিনা। মুছতে, ঘুমাতে;
নিকফ

7
হে! আমি কীভাবে একটি মন্তব্য আপ-ভোট করব ??
নিফলে

উত্তর:


48

এটি অবশ্যই আপনার ডাটাবেসের প্রকৃত সামগ্রীর উপর নির্ভর করে। আপনি যদি এটি সেশন তথ্য সংরক্ষণ করতে ব্যবহার করে থাকেন তবে সেশনটির মেয়াদ শেষ হওয়ার সাথে সাথে (বা বন্ধ থাকলে) ততক্ষণে একেবারে মুছুন, আপনি চান না যে আবর্জনা চারপাশে পড়ে আছে। যেহেতু এটি বাস্তবে কোনও ব্যবহারিক উদ্দেশ্যে পুনরায় ব্যবহার করা যাবে না।

মূলত, আপনার নিজেকে যা জিজ্ঞাসা করা উচিত, আমি কি এই তথ্যটি পুনরুদ্ধার করতে পারি? SO- তে মুছে ফেলা প্রশ্নগুলির মতো এগুলি অবশ্যই 'মুছে ফেলা' হিসাবে চিহ্নিত করা উচিত, কারণ আমরা সক্রিয়ভাবে একটি মুছে ফেলার অনুমতি দিচ্ছি। অনেক অতিরিক্ত কাজ ছাড়াই আমাদের ব্যবহারকারীর বাছাই করার জন্যও এটি প্রদর্শন করার বিকল্প রয়েছে।

আপনি যদি সক্রিয়ভাবে ডেটা পুরোপুরি পুনরুদ্ধার করতে চাইছেন না তবে আপনি তবুও এটি পর্যবেক্ষণ (বা অনুরূপ) উদ্দেশ্যে এটিকে ঘিরে রাখতে চান। আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি একত্রিতকরণ প্রকল্পটি (অবশ্যই সম্ভব সীমাবদ্ধভাবে) নির্ধারণ করুন এবং এটিকে অন্য টেবিলে সরিয়ে দিন। এটি আপনার প্রাথমিক সারণীটিকে 'মুছে ফেলা' ডেটা পরিষ্কার রাখার পাশাপাশি তদারকির উদ্দেশ্যে (বা যা মনে মনে রেখেছিল) আপনার গৌণ টেবিলটিকে অনুকূল রাখবে।

সময়গত ডেটা জন্য, দেখুন: http://talentedmonkeys.wordpress.com/2010/05/15/temporal-data-in-a-relational-database/


30

একটি মুছে ফেলা পতাকা ব্যবহারের পেশাদার:

  1. আপনার প্রয়োজন হলে ডেটা পরে পেতে পারেন,
  2. মুছুন অপারেশন (পতাকা আপডেট করা) সম্ভবত এটি মুছে ফেলার চেয়ে দ্রুততর

মুছে ফেলা পতাকা ব্যবহার করার বিষয়টি:

  1. AND DeletedFlag = 'N'আপনার এসকিউএল কোথাও মিস করা খুব সহজ
  2. আপনি যে সমস্ত ক্র্যাপের মধ্যে আগ্রহী সেগুলি সন্ধান করতে ডাটাবেসের জন্য ধীর
  3. অবশেষে, আপনি সম্ভবত এটি যেকোনভাবে মুছে ফেলতে চাইবেন (ধরে নিলে আপনার সিস্টেমটি সফল হয়েছে that রেকর্ডটি যখন 10 বছরের পুরানো এবং মূলত তৈরি হওয়ার 4 মিনিটের পরে এটি "মুছে ফেলা" কী হবে)
  4. এটি একটি প্রাকৃতিক কী ব্যবহার করা অসম্ভব করে তুলতে পারে। প্রাকৃতিক কী সহ আপনার এক বা একাধিক মোছা সারি থাকতে পারে এবং একই প্রাকৃতিক কীটি ব্যবহার করতে চাইলে একটি আসল সারি থাকতে পারে।
  5. আইনী / বাধ্যবাধকতার কারণগুলি থাকতে পারে যা আপনি আসলে ডেটা মুছতে চাইছেন।

23

সমস্ত পোস্টের পরিপূরক হিসাবে ...

তবে, আপনি যদি রেকর্ডটি চিহ্নিত করার পরিকল্পনা করেন তবে সক্রিয় রেকর্ডগুলির জন্য, একটি দৃষ্টিভঙ্গি বিবেচনা করা ভাল। এটি আপনাকে আপনার এসকিউএল কোয়েরিতে পতাকাটি লিখতে বা ভুলে যাওয়া থেকে রক্ষা করবে। আপনি অ-সক্রিয় রেকর্ডগুলির জন্যও একটি ভিউ বিবেচনা করতে পারেন, যদি আপনি মনে করেন যে এটিও কোনও উদ্দেশ্য করে serve


11

আমি এই সুতোটি পেয়ে খুশি। আমিও ভাবছিলাম এই সমস্যা সম্পর্কে লোকেরা কী ভাববে। আমি প্রায় 15 বছর ধরে অনেক সিস্টেমে 'মুছে ফেলা হিসাবে চিহ্নিত "প্রয়োগ করেছি। যখনই কোনও ব্যবহারকারী দুর্ঘটনাক্রমে কিছু মুছে ফেলার কথা বলবে তখন এটি পুনরায় তৈরি করা বা ব্যাকআপ থেকে পুনরুদ্ধার করার চেয়ে আন-মুছে ফেলা চিহ্নিত করা খুব সহজ ছিল।

আমরা রেলপথগুলিতে পোস্টগ্রেস্কএল এবং রুবি ব্যবহার করছি এটি দেখে মনে হচ্ছে আমরা এটি দুটি উপায়ে 1 টি করতে পেরেছি, রেল সংশোধন করতে পারি বা একটি অনডিলিট ট্রিগার যুক্ত করতে পারি এবং মুছে ফেলা হিসাবে চিহ্নিত করার জন্য একটি pl / pgsql ফাংশন করি। আমি পরের দিকে ঝুঁকছি।

পারফরম্যান্স হিট হিসাবে, কয়েকটি মুছে ফেলা আইটেমের পাশাপাশি অনেক মুছে ফেলা আইটেমগুলিতে বড় টেবিলগুলিতে এক্সপ্ল্যান-অ্যানালাইজের ফলাফলগুলি আকর্ষণীয় হবে।

সময়ের সাথে সাথে ব্যবহার করা সিস্টেমগুলিতে, নতুন ব্যবহারকারীরা দুর্ঘটনাক্রমে জিনিস মোছার মতো নির্বোধ কাজ করার ঝোঁক। সুতরাং লোকেরা যখন কোনও পজিশনে নতুন থাকে তখন শূন্য অভিজ্ঞতা ব্যতীত তাদের কাছে সেই অবস্থানে থাকা ব্যক্তির সমস্ত অ্যাক্সেসের অধিকার থাকে। দুর্ঘটনাক্রমে কিছু মুছে ফেলা এবং দ্রুত পুনরুদ্ধার করতে সক্ষম হওয়া সবাইকে দ্রুত কাজে ফিরে আসে।

তবে যেহেতু কেউ বলেছেন, কখনও কখনও কোনও কারণে আপনার সেই বিশেষ কীটি ফিরে আসতে পারে, সেই মুহুর্তে আপনাকে সত্যিকার অর্থে এটি মুছতে হবে, তারপরে রেকর্ডগুলি পুনরায় তৈরি করুন (এটি মুছে ফেলা এবং রেকর্ডটি সংশোধন করার জন্য)।


1
+1 কারণ ব্যবহারকারীর বন্ধুত্বের মধ্যে বিপর্যয়কর ভুল করার আমার ক্ষমতা সীমাবদ্ধ করে।
জেসি

6

ব্যক্তিগত তথ্য জড়িত থাকলে কোনওভাবেই আইনি সমস্যা রয়েছে। আমি মনে করি এটি আপনি কোথায় আছেন (বা ডাটাবেস কোথায়) এবং ব্যবহারের শর্তাদি কী তা নির্ভর করে তা নির্ভর করে greatly

কিছু ক্ষেত্রে লোকেরা আপনার সিস্টেম থেকে অপসারণ করতে চাইতে পারে, সেই ক্ষেত্রে একটি হার্ড মুছন প্রয়োজন (বা কমপক্ষে ব্যক্তিগত সমস্ত তথ্য মুছে ফেলা)।

ব্যক্তিগত তথ্য জড়িত থাকলে আপনি কোনওভাবেই কৌশল অবলম্বন করার আগে আমি আপনার আইনী বিভাগের সাথে চেক করব।


5

আমি এগুলিকে মুছে ফেলা হিসাবে চিহ্নিত করেছি, এবং সত্যই মুছবেন না। তবে প্রতিবারের মধ্যে একবারে আমি সমস্ত আবর্জনা সরিয়ে আর্কাইভ করে রাখি, সুতরাং এটি পারফরম্যান্সকে হত্যা করে না।


2

আপনি যদি "ডাটাবেস" রেকর্ডগুলি সম্পর্কে আপনার ডাটাবেস অ্যাক্সেসকে কমিয়ে আনার বিষয়ে উদ্বিগ্ন হন তবে আপনি এই সারিগুলিকে একটি "সংরক্ষণাগার" টেবিল হিসাবে অভিনয় করে অন্য টেবিলে স্থানান্তর করতে চাইতে পারেন।


1

ব্যবহারকারী-প্রবেশ করা / পরিচালিত ডেটার জন্য আমি বর্ণিত ফ্ল্যাগ পদ্ধতিটি ব্যবহার করেছি এবং ব্যবহারকারীর আইটেমগুলি মুছতে চাইলে তারা "খালি ট্র্যাশ" ইন্টারফেস দিয়েছে if

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.