আদেশযুক্ত তালিকার প্রতিনিধিত্ব করা রিলেশনাল ডাটাবেসগুলির মধ্যে অন্যতম সমস্যা problems তালিকার সদস্যতার সম্পর্কের ক্ষেত্রে পজিশনের সম্পত্তি যুক্ত করা এটি করার সর্বাধিক সাধারণ উপায়, যেহেতু আপনি সহজেই ORDER BY position
আপনার এসকিউএল কোয়েরিতে যুক্ত করে আদেশ তালিকাটি পুনরুদ্ধার করতে পারেন এবং যেহেতু আপনি সহজেই গড়ের মাধ্যমে তালিকার মাঝখানে আইটেমগুলি সন্নিবেশ করতে পারেন পূর্ববর্তী এবং পরবর্তী তালিকার সদস্যের মানগুলি, অবস্থানটি অনুমান করে পূর্ণসংখ্যার পরিবর্তে ভাসমান।
দ্বিগুণ লিঙ্কযুক্ত তালিকাগুলি ব্যবহার করা এড়ানো উচিত, কারণ দুর্ঘটনাক্রমে লিঙ্কগুলিকে অসঙ্গতিপূর্ণ করা সহজ এবং তার পরিবর্তে একটি চক্রাকার গ্রাফ বা গাছের সাথে শেষ করা উচিত।
তবে, RESTful API গুলি সম্পর্কিত ডেটাবেসগুলির সীমাবদ্ধতায় ভোগে না। আপনি কোনও পজিশনের মতো হ্যাক ব্যবহার না করে প্রাকৃতিক বোধ করার মতো কিছু করতে পারেন।
তালিকায় যদি আপনার কাছে কয়েক শতাধিক উপাদান থাকে তবে কেবল একটি অনুরোধে পুরো তালিকাটি স্থানান্তর করুন। ধরে নিই আমরা [1, 2, 3, 4]
তালিকার সদস্যরা যেখানে আইডি রয়েছে সেখানে পুনঃক্রম করতে চাই
POST /url/of/the/list
Content-type: application/json
...
[1, 2, 4, 3]
ব্যাকএন্ড এটির পরে আপনি যে কোনও ডাটাবেজ প্রযুক্তি ব্যবহার করছেন তা এটি অনুবাদ করতে পারে তবে এপিআই ব্যবহারকারীদের এই বিবরণগুলি বিবেচনা করতে হবে না।
যদি তালিকাটি বড় হয় এবং আইটেমগুলিতে সাধারণত স্বতন্ত্রভাবে অনুরোধ করা হয় তবে আপনি url এ একটি সূচকের অনুমতি দিতে পারেন:
GET /page/7
আপনি যদি হেটোয়াস এ থাকেন তবে প্রতিক্রিয়াটিতে নেভিগেশনকে সহজ করার জন্য পূর্ব / পরবর্তী লিঙ্কগুলি অন্তর্ভুক্ত থাকতে পারে, যদি উত্সটি সাধারণত সেভাবেই গ্রাস করা হয়। তবে, এটি বোঝানোর দরকার নেই যে আপনার ডাটাবেসেও এই দ্বিগুণ-লিঙ্কযুক্ত তালিকা রয়েছে।
যদি তালিকাটি খুব বড় হয় তবে আপনি পছন্দ ArrayList
মত অপারেশন যেমন insert
বা push
/ প্রকাশ করতে চাইতে পারেন append
। আমি যেমন কল কল্পনা করতে পারে
POST /url/of/the/list?at=1357;mode=insert
...
description of the item to insert
যদি পুনঃনির্মাণ একটি সাধারণ ব্যবহারের ক্ষেত্রে হয় এবং তত্ক্ষণাত পুনরায় অর্ডারিং প্রতিশ্রুতিবদ্ধ করা উচিত, তবে আপনি আপনার এপিআইতে একটি উপযুক্ত এন্ডপয়েন্ট দিতে পারেন:
POST /url/of/the/list/reorder-item?from=783;to=1357
যদি পুনঃনির্দেশিত তালিকাটি স্পষ্টভাবে প্রতিশ্রুতিবদ্ধ করা উচিত, তবে নতুন অর্ডারটিকে JSON নথি হিসাবে স্থানান্তর করা সহজ হবে, উপরে দেখুন।
এখন এটি একেবারেই সত্য নয় যে আপনি আপনার API টি ব্যবহার করছেন যে ডেটাবেস প্রযুক্তি থেকে সম্পূর্ণ আলাদা view তবে, প্রয়োগের বিশদ থেকে বাহ্যিক এপিআই যথাসম্ভব নিখরচায় রাখা ভাল। যদি কোনও পুনর্বিন্যাস কেবলমাত্র একটি পূর্ণসংখ্যার অর্ডার কলাম আপডেট করতে 30 টি সারি স্পর্শ করে, এটি কোনও বড় কথা। কেবলমাত্র সহজতম কাজটি করুন এবং সর্বদা সম্পূর্ণ তালিকা আপডেট করুন। যদি আপনার স্কেলটির জন্য আপনার ডাটাবেসের ব্যবহার আরও পরিশীলিত হওয়া প্রয়োজন, তবে এই পরিশীলনটিকে ব্যাকএন্ডে ক্যাপচার করতে পছন্দ করুন, যেখানে ধারাবাহিকতা বজায় রাখা আরও সহজ।