আমার লিগের বাইরে থাকা একটি ডাটাবেস ডিজাইনের সমস্যাটি পেরিয়ে গিয়েছি এবং আমার ডিবিএ গুরুর কাছে ফায়ার ড্রিল বন্ধ রয়েছে।
সংক্ষেপে, আমার কাছে নিম্নলিখিত প্রাথমিক কী (ব্রেভিটির জন্য পিকে) সহ একটি টেবিল রয়েছে:
child_id integer
parent_id integer
date datetime
child_id
এবং parent_id
সত্তার টেবিলগুলির জন্য বিদেশী কী। "শিশু" সারণীতে নিজেই "প্যারেন্ট" টেবিলে একটি বিদেশী কী রয়েছে এবং লো, প্রতিটি child_id
সর্বদা parent_id
উপরের সারণীর দ্বারা প্রত্যাশিত একইরকম উল্লেখ করে । আসলে, দেখা যাচ্ছে যে দুটি অতিরিক্ত সমন্বয় করে কিছু অতিরিক্ত কোড রয়েছে।
যা এই অতিমাত্রায় উত্সাহী সাধারণীকরণকে নবীকে বলে তোলে "এর পরিবর্তে আমার অপ্রয়োজনীয় অপসারণ করা উচিত!"
আমি নিম্নলিখিতটি পচে:
Table_1 PK:
child_id integer
date datetime
Table_2 PK:
parent_id integer
date datetime
Table_3: (already exists)
child_id integer PRIMARY KEY
parent_id integer FOREIGN KEY
এবং দেখুন, আমি যখন এই ছেলেরা প্রাকৃতিক উপায়ে একসাথে যোগদান করি তখন আমি আসল টেবিলটি পুনরুদ্ধার করি। এটি আমার বোঝাপড়া যা এই 5 এনএফ করে তোলে।
যাইহোক, এখন আমি বুঝতে পারি যে একটি গোপনীয় ব্যবসার নিয়ম রয়েছে।
সাধারণত, প্রদত্তের সাথে সম্পর্কিত তারিখগুলি সংশ্লিষ্টগুলির সাথে সম্পর্কিত তারিখগুলির child_id
একটি উপসেট হতে হবে parent_id
। আপনি দেখতে পাচ্ছেন যে প্রথম টেবিলটি এই বিধি প্রয়োগ করে।
আমার পচনটি নিয়মটি কার্যকর করে না, কারণ তারিখগুলি খুব বেশি বড় না হওয়া পর্যন্ত আপনি অবাধে টেবিল 1 এ যুক্ত করতে পারেন।
নিম্নলিখিত প্রশ্নগুলির সাথে যা আমাকে এখানে নিয়ে যায়:
এই ক্ষয় 5NF হয়? যদিও আমি বলব এটি সন্নিবেশজনিত অসুবিধাগুলির অনুমতি দেয়, এটি উইকির উদাহরণ অনুসরণ করে বলে মনে হয়, যা নিজেই এই গাইডটি অনুসরণ করে । " তিনটি পৃথক রেকর্ড ধরণের সমন্বিত একটি সাধারণ আকারের মাধ্যমে আমরা সমস্ত সত্য তথ্য পুনর্গঠন করতে পারি" এই বাক্যাংশটি আমাকে বিশেষ বিরতি দেয়, যেহেতু আমি যতটা আবর্জনা পাম্প করি না কেন
Table_1
, প্রাকৃতিক যোগদান এখনও এড়িয়ে যায় না oresধরুন আমি এই পচনটি পছন্দ করি না (আমি পছন্দ করি না)। আমি নির্দ্বিধায় স্বীকার করি যে ব্যবহারিক সমাধানটি হ'ল টেবিল এবং কোডটি যেমন রয়েছে তেমনি রেখে দেওয়া। কিন্তু তত্ত্ব, সেখানে পচা এবং / অথবা সীমাবদ্ধতা যোগ করার জন্য যেমন যে আমি প্রথম টেবিল থেকে দূরে পেতে একটি উপায় এবং আমার ব্যবসার নিয়ম সংরক্ষণ?