আমার কাছে চলচ্চিত্র উপস্থাপন করার জন্য একটি টেবিল রয়েছে। ক্ষেত্র:
id (PK), title, genre, runtime, released_in, tags, origin, downloads
।
সদৃশ সারি দ্বারা আমার ডাটাবেস দূষিত করা যায় না, তাই আমি স্বতন্ত্রতা প্রয়োগ করতে চাই। সমস্যাটি হ'ল বিভিন্ন চলচ্চিত্রের একই শিরোনাম, tags
এবং বাদে একই ক্ষেত্র থাকতে পারে downloads
। কিভাবে স্বতন্ত্রতা প্রয়োগ?
আমি দুটি উপায় নিয়ে ভেবেছিলাম:
downloads
প্রাথমিক কী বাদে সমস্ত ক্ষেত্র তৈরি করুন । আমিdownloads
জেএসএন থেকে আউট রাখছি এবং এটি সম্ভবত পারফরম্যান্সে প্রভাব ফেলবে।- কেবল
id
প্রাথমিক কী হিসাবে রাখুন, তবে অন্যান্য সমস্ত কলামের সাথে একটি অনন্য বাধা যুক্ত করুন (আবার বাদে,downloads
)।
আমি এই প্রশ্নটি পড়েছি যা খুব অনুরূপ, তবে আমার কী করা উচিত তা আমি যথেষ্ট বুঝতে পারি নি। বর্তমানে এই টেবিলটি অন্য কোনও টেবিলের সাথে সম্পর্কিত নয়, তবে ভবিষ্যতেও হতে পারে।
এই মুহুর্তে আমার কাছে ২০,০০০ রেকর্ডের তুলনায় কিছুটা কম, তবে আমি সংখ্যাটি বাড়ার আশা করছি। আমি জানি না এটি এই সমস্যার সাথে কিছুটা প্রাসঙ্গিক কিনা।
সম্পাদনা: আমি স্কিমাটি সংশোধন করেছি এবং এখানে আমি কীভাবে টেবিলটি তৈরি করব:
CREATE TABLE movies (
id serial PRIMARY KEY,
title text NOT NULL,
runtime smallint NOT NULL CHECK (runtime >= 0),
released_in smallint NOT NULL CHECK (released_in > 0),
genres text[] NOT NULL default ARRAY[]::text[],
tags text[] NOT NULL default ARRAY[]::text[],
origin text[] NOT NULL default ARRAY[]::text[],
downloads json NOT NULL,
inserted_at timestamp NOT NULL default current_timestamp,
CONSTRAINT must_be_unique UNIQUE(title,runtime,released_in,genres,tags,origin)
);
আমি কলামটিও যুক্ত করেছি timestamp
, তবে এটি কোনও সমস্যা নয় কারণ আমি এটি স্পর্শ করব না। সুতরাং এটি সর্বদা স্বয়ংক্রিয় এবং অনন্য থাকবে।