কিছুক্ষণ আগে শুনেছি একটি রসিকতা আছে:
প্রশ্ন কিভাবে একটি বেসিক কোডার 10 গণনা করে?
একটি 1,2,3,4,5,6,7,8,9,10
প্রশ্ন কিভাবে একটি সি কোডার 10 গণনা করে?
একটি 0,1,2,3,4,5,6,7,8,9
প্রশ্ন কিভাবে একটি ডিবিএ 10 গণনা করে?
একটি 0,1, অনেক
এই রসিকতার পিছনে সত্যটি হ'ল একবার আপনার ডাটাবেস কাঠামোতে (কলাম বা সারণী) একই জিনিস দুটি (বা তার বেশি) পরে, আপনি এটি ভুল করছেন।
এমন একটি স্কিমা যা দেখে মনে হচ্ছে:
+----------+
| id |
| name |
| phone1 |
| phone2 |
| |
+----------+
ভুল কারণ কারও কাছে থাকলে তৃতীয় ফোন নম্বর আপনি কোথায় রাখবেন?
একই টেবিলে তাদের প্রযোজ্য। রানটাইমে স্কিমাটি সংশোধন করাও এটি একটি খারাপ বিষয়, যা "প্রতিটি তালিকার জন্য নতুন টেবিল" বোঝাচ্ছে। (সম্পর্কিত: এমভিসি 4: রান সময়ে মডেলটি কীভাবে তৈরি করবেন? )
এবং এইভাবে, সমাধানটি একটি টুডো তালিকা তৈরি করতে হবে যা দুটি টেবিলের সমন্বয়ে গঠিত। আপনার কাছে দুটি জিনিস রয়েছে - তালিকা এবং আইটেম items
সুতরাং, আসুন একটি টেবিল কাঠামো তৈরি করুন যা এটি প্রতিফলিত করে:
+----------+ +-------------+
| List | | Task |
+----------+ +-------------+
| id (pk) <---+ | id (pk) |
| name | +---+ listid (fk) |
| | | desc |
| | | |
+----------+ +-------------+
তালিকার একটি আইডি রয়েছে (তালিকার প্রাথমিক কী) এবং একটি নাম। টাস্কটির একটি আইডি (প্রাথমিক কী) একটি লিস্টিড (একটি বিদেশী কী) এবং কার্যটির বিবরণ রয়েছে। বিদেশী কীটি অন্য সারণীর প্রাথমিক কীটির সাথে সম্পর্কিত।
আমি উল্লেখ করব যে এটি সফ্টওয়্যার এবং টেবিল কাঠামোর সমর্থন করার জন্য বিভিন্ন প্রয়োজনীয়তার সমস্ত সম্ভাবনাগুলিকে অন্তর্ভুক্ত করতে শুরু করে না। সমাপ্ত, নির্ধারিত তারিখ, পুনরাবৃত্তি ইত্যাদি ... এগুলি সমস্ত অতিরিক্ত কাঠামো যা টেবিলটি ডিজাইন করার সময় বিবেচনা করা প্রয়োজন। এটি বলেছিল, যদি টেবিলের কাঠামোটি যথাযথভাবে স্বাভাবিক করা হয় না (বা আপনি যে ট্রেডফর্মগুলি করেছেন যে এটি সাধারণীকরণের কারণে অনুধাবন করা হয়) তবে আপনার পরে অনেক মাথাব্যথা হবে।
এখন, এটি সম্পর্কিত সম্পর্কিত ডেটাবেস হিসাবে এটি লেখার সাথে সম্পর্কিত all তবে সেখানে কেবলমাত্র ডাটাবেসই নয়। আপনি যদি কোনও তালিকাটিকে নথি হিসাবে বিবেচনা করেন তবে নথির স্টাইলযুক্ত নোসকিএল ডাটাবেসগুলি এমন একটি পদ্ধতির প্রস্তাবও দিতে পারে যা ভুল নয়।
যদিও আমি এটি খুব বেশি দূরত্বে প্রকাশ করতে যাচ্ছি না, পালঙ্কে টোডো তালিকার জন্য এখানে প্রচুর টিউটোরিয়াল রয়েছে। এর মধ্যে একটি যা অনুসন্ধানে এসেছিল তা হ'ল কাউচডিবি-তে একটি সাধারণ টাস্ক-তালিকা অ্যাপ্লিকেশন । কাউচডবি উইকিতে আরেকটি প্রদর্শন রয়েছে: করণীয় তালিকার প্রস্তাবিত স্কিমা ।
একটি পালঙ্কের জন্য উপযুক্ত পদ্ধতির ক্ষেত্রে, প্রতিটি তালিকা ডাটাবেসে সঞ্চিত একটি JSON নথি। আপনি কেবল একটি JSON অবজেক্টে তালিকাটি স্থাপন করবেন এবং এটি ডাটাবেসে রাখবেন। এবং তারপরে আপনি ডাটাবেস থেকে পড়েন।
জেএসওএন এর মতো দেখতে পেল:
[
{"task":"get milk","who":"Scott","dueDate":"2013-05-19","done":false},
{"task":"get broccoli","who":"Elisabeth","dueDate":"2013-05-21","done":false},
{"task":"get garlic","who":"Trish","dueDate":"2013-05-30","done":false},
{"task":"get eggs","who":"Josh","dueDate":"2013-05-15","done":true}
]
( স্ট্যাক ওভারফ্লোতে জসন ফাইলের সাথে শপিং তালিকা তৈরি করা থেকে )।
বা কিছু যে কাছাকাছি। নথিটির অংশ হিসাবে পালঙ্কের রয়েছে এমন আরও কিছু রেকর্ড রয়েছে।
জিনিসটি হল, এটির কাছে যাওয়ার ভুল উপায় নয় এবং একটি ডকুমেন্ট ডাটাবেসে একটি টুডো তালিকা এটি কীভাবে করবেন তার জন্য কম ধারণা ওভারহেড দিয়ে আপনি যা করার চেষ্টা করছেন তার জন্য পুরোপুরি উপযুক্ত হতে পারে ।