পরিবর্তনগুলির রেকর্ড রাখতে কোনও ডাটাবেস এবং সারণি ডিজাইনের সেরা উপায়?


16

পূর্ববর্তী পরিবর্তনগুলির উপর নজর রাখতে আমার একটি প্রকল্পে ইতিহাস বৈশিষ্ট্য সেটআপ করা দরকার।

বলি এখনই আমার কাছে দুটি টেবিল রয়েছে:

NOTES TABLE (id, userid, submissionid, message)

SUBMISSIONS TABLE (id, name, userid, filepath)

উদাহরণ: আমার নোটগুলিতে একটি সারি রয়েছে এবং ব্যবহারকারী বার্তাটি পরিবর্তন করতে চায়। আমি পরিবর্তনের আগে এবং পরিবর্তনের পরে এর অবস্থার উপর নজর রাখতে চাই।

এই টেবিলগুলির প্রত্যেকটিতে একটি কলাম স্থাপনের জন্য সর্বোত্তম পন্থা কী হবে যা কোন আইটেমটি "পুরানো" বলে দেবে। 0 সক্রিয় হলে OR 1 মুছে ফেলা / অদৃশ্য হলে।

আমি একটি ইতিহাস ( AUDIT TRAIL) সারণীও তৈরি করতে চাই যা idপূর্ববর্তী রাজ্যের, idনতুন রাষ্ট্রের, যে আইডিটির সাথে সম্পর্কিত?


1
আপনি একটি অডিট টেবিল তৈরি করতে ডাটাবেস ট্রিগার ব্যবহার করতে পারেন ।
কিন শাহ

উত্তর:


5

দয়া করে দেখুন

http://www.codeproject.com/Articles/105768/Audit-Trail-Tracing-Data-Changes-in-Database

আপনার ডাটাবেস ডিজাইনে অডিট ট্রেল তৈরি করার পদ্ধতির উপর এটি খুব ভাল পঠিত। একটি ডাটাবেস বাস্তবায়নের জন্য অডিট ট্রেইলগুলি প্রয়োজনীয়। আপনার সিস্টেমের মধ্যে ডাটাবেস ব্যবহারকারীদের ক্রিয়াটি সর্বদা দেখতে সক্ষম হওয়া উচিত।

আমাদের পিটিএ (পয়েন্ট ইন টাইম) সিস্টেমে পিটিএর আগ্রহের সমস্ত টেবিলগুলিতে কিছু স্ট্যান্ডার্ড পিটিএ (সময় পয়েন্ট) কলাম যুক্ত করে কোন সারিগুলি পরিবর্তন করা হয়েছিল তা আমরা আবিষ্কার করতে পারি।

আমি নিম্নলিখিত পরামর্শ:

DateCreated  the actual date on which the given row was inserted.
DateEffective  the date on which the given row became effective.
DateEnd  the date on which the given row ceased to be effective.
DateReplaced  the date on which the given row was replaced by another row.
OperatorCode  the unique identifier of the person (or system) that created the row.

কোনও ওলটিপি আবেদনের জন্য 'সমাধান নং 2: উত্সর্গীকৃত ডেটা-ট্র্যাকিং সারণী' প্রয়োগ করার সর্বোত্তম উপায় কী?
এএএসসি

আমি বর্তমানে যে সংস্থার জন্য কাজ করি সেগুলি একাধিক স্কিমা ব্যবহার করে, একটি বিশেষত নিরীক্ষণের জন্য ব্যবহৃত হয়। সমাধান # 2 ব্যবহার করার সময় নিরীক্ষণ টেবিলটি সত্যই বেশ সাধারণ নকশা ((যা আমরা এখানে কাজের ক্ষেত্রে ব্যবহার করি ঠিক তেমন)। বিভিন্ন টাস্কটি ভেঙে ফেলুন (ইনভেন্টরি টেবিল আপডেট হয়েছে, গ্রাহকের তথ্য আপডেট হয়েছে বা মুছে ফেলা হয়েছে, গ্রাহকের প্রতি ক্রেডিট সরবরাহ করা হয়েছে ইত্যাদি ইত্যাদি) এবং ব্যবহারকারীরা সক্ষম যে সাধারণ ক্রিয়াগুলির ভিত্তিতে নিরীক্ষণ টেবিলটি তৈরি করুন build সমাধানটি আপনার ডিবিতে 2 প্রয়োগ করার ক্ষেত্রে কি এটি আপনার প্রশ্নের উত্তর দেয়, দয়া করে যদি স্পষ্ট করে না। ধন্যবাদ!
হেক্টর

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

10

আপনার ডেটাতে সংস্করণ ক্ষমতা ডিজাইন করার সময়, বেশ কয়েকটি ন্যূনতম (আমার মনে হয়) প্রয়োজনীয়তা রয়েছে:

  • ডেটার প্রতিটি সংস্করণ স্ব-অন্তর্ভুক্ত এবং অন্যান্য সংস্করণগুলির চেয়ে পৃথক হওয়া উচিত। এর অর্থ হ'ল বর্তমান সংস্করণটি কোনটি এবং কোনটি "ইতিহাস" এমন কোনও পতাকা বা অন্য নির্দেশক দেখাচ্ছে না। এর অর্থ হ'ল সত্তা আপডেট করার অর্থ শুধুমাত্র একটি নতুন সংস্করণ সন্নিবেশ করা - পূর্ববর্তী সংস্করণগুলির কোনও আপডেট করার দরকার নেই।
  • আমি সারি স্প্যানিং নির্ভরতা যা বলি তা এড়িয়ে চলুন। সেই স্থানেই একটি সারির একটি ক্ষেত্র (শেষ_ তারিখ) অবশ্যই একটি পৃথক সারির অন্য ক্ষেত্রের (সূচনা_ তারিখ) সাথে সিঙ্কে থাকতে পারে। এটি ডেটা দিয়ে কাজ করা আরও কঠিন করে তোলে এবং এটি ব্যতিক্রমতার একটি দুর্দান্ত উত্স।
  • বর্তমান সংস্করণ এবং সমস্ত অতীত সংস্করণ একই টেবিলে থাকা উচিত। এটি একটি নির্দিষ্ট তারিখ হিসাবে "পূর্ববর্তী ডেটা" দেখতে এবং বর্তমান ডেটা দেখার জন্য একই ক্যোয়ারীটি ব্যবহার করা সম্ভব করে।
  • সংস্করণ করা হয়েছে এমন তথ্যের বিদেশী কীগুলিকে স্বাভাবিক (রূপান্তরিত) ডেটার মতোই কাজ করা উচিত।
  • নকশাটি এত সহজ বা সর্বজনীনভাবে বোঝা উচিত যে নতুন বিকাশকারীদের জন্য শেখার বক্রতা হ্রাস করা হয়েছে।

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


1
খুব সুন্দর পয়েন্ট! তবে, আমি এটি পুরোপুরি বুঝতে পারি না This means no flag or other indicator showing which is the current version and which are "history.", যদি কোনও পতাকা বা সূচক না থাকে, তবে আমরা কীভাবে ইতিহাসের সংস্করণ থেকে বর্তমান সংস্করণটিকে পৃথক করব? বিশেষত আপনার তৃতীয় পয়েন্টের ভিত্তিতে যা আপনি প্রস্তাব করেন যে সেগুলি একই টেবিলে থাকা উচিত।
GMsoF

উপস্থাপনাটি টেবিলগুলি থেকে বর্তমান এবং / বা অতীতের ডেটা পড়ার ক্যোয়ারী সহ একটি উদাহরণ নকশা দেখায়। যদি এটি গভীরভাবে দেখার জন্য যথেষ্ট আকর্ষণীয় দেখায় তবে নথিতে আরও অনেক বিশদ রয়েছে।
টমক্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.