কাউচডিবি এবং ডকুমেন্ট সংস্করণ


12

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

  1. প্রতিটি সংস্করণ পৃথক নথি হিসাবে সংরক্ষণ করুন
  2. একক দস্তাবেজের সংযুক্তি হিসাবে পুরানো সংস্করণ সংরক্ষণ করুন।

এখনই, আমি # 1 কাজের ফর্ম পেয়েছি। যখন কোনও ব্যবহারকারী কোনও দস্তাবেজ সম্পাদনা করে এটি সংরক্ষণ করে, ব্যাক-এন্ড প্রথমে পূর্ববর্তী সংস্করণটি একটি নতুন দস্তাবেজে অনুলিপি করে এবং তারপরে নতুন সংস্করণ সংরক্ষণ করে। প্রতিটি নথিতে একটি 'ইতিহাস' অ্যারে থাকে যা প্রতিটি সংস্করণে ডেটা থাকে (পুরানো সংস্করণের ডকুমেন্ট _আইড, একটি টাইমস্ট্যাম্প, সম্পাদক ইত্যাদি)।

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

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


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

উত্তর:


2

কেবলমাত্র পরিবর্তনগুলি সংরক্ষণ করা একটি ভাল ধারণা হবে, কারণ পৃথক নথি বা ডাটাবেসের চূড়ান্ত সংশোধনীর সাথে সংযুক্তি হিসাবে পুরানো নথি সংরক্ষণ করা ডাটাবেস সার্ভারে একটি ওভারহেড তৈরি করবে।

যখনই আপনি আপনার দস্তাবেজে কোনও মূল মান পরিবর্তন করেন, নামযুক্ত একটি নতুন কী যুক্ত করুন _h_i_s_<key_name>। সদ্য নির্মিত (বা শেষ আপডেটের সময় তৈরি করা হয়েছে), প্রতিটি সম্পাদনা / আপডেটের পরে নীচের মতো বস্তু যুক্ত করুন: -

{
key_name: "Hello",
_h_i_s_key_name:{time_of_update:value_of_key_name_before_update},
....
}

অথবা

    {
    key_name: "Hello",
    _h_i_s_key_name:[{time:time_of_update,value:value_of_key_name_before_update}, {time:time_of_last_update,value:value_of_key_name_before_last_update}],
    ....
    }

এই পদ্ধতির ফলে দীর্ঘমেয়াদে ডিস্কের অনেক জায়গা এবং প্রতিরূপ ব্যান্ডউইথের সাশ্রয় হবে।


0

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

আপনি এখানে একবার নজর দিতে বা ডেটা ভার্সন অনুসন্ধান করতে চাইতে পারেন ।


এই উত্তরটি কোন বিকল্প 1 (পৃথক নথি) বা 2 (দস্তাবেজের অংশ হিসাবে) ভাল তা বলতে ব্যর্থ।
বিনকি

0

অনেক বছর পর ;-)

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

নিশ্চিতরূপে আপনাকে সমস্ত সংশোধনী রাখতে হবে যার অর্থ কী হবে, আপনার খুব বড় ডিস্কের প্রয়োজন।

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