পটভূমি
আমি প্রথম বর্ষের সিএস ছাত্র এবং আমি আমার বাবার ছোট ব্যবসায়ের জন্য খণ্ডকালীন কাজ করি। বাস্তব বিশ্বের অ্যাপ্লিকেশন বিকাশে আমার কোনও অভিজ্ঞতা নেই। আমি পাইথনে স্ক্রিপ্ট লিখেছি, সি তে কিছু কোর্স ওয়ার্ক করেছি তবে এর মতো কিছুই নেই।
আমার বাবার একটি ছোট প্রশিক্ষণের ব্যবসা রয়েছে এবং বর্তমানে সমস্ত ক্লাস নির্ধারিত, রেকর্ড করা এবং একটি বাহ্যিক ওয়েব অ্যাপ্লিকেশনের মাধ্যমে অনুসরণ করা হয়। একটি রফতানি / "প্রতিবেদন" বৈশিষ্ট্য রয়েছে তবে এটি খুব সাধারণ এবং আমাদের নির্দিষ্ট প্রতিবেদনগুলির প্রয়োজন। কোয়েরিগুলি চালানোর জন্য আমাদের কাছে আসল ডাটাবেসের অ্যাক্সেস নেই। আমাকে একটি কাস্টম রিপোর্টিং সিস্টেম স্থাপন করতে বলা হয়েছে।
আমার ধারণা জেনেরিক সিএসভি রফতানি তৈরি করা এবং (সম্ভবত পাইথনের সাথে) এগুলি প্রতি রাতে অফিসে হোস্ট করা একটি মাইএসকিউএল ডাটাবেসে আমদানি করা হয়, সেখান থেকে প্রয়োজনীয় সুনির্দিষ্ট প্রশ্নগুলি চালাতে পারি। আমার কাছে ডাটাবেসে অভিজ্ঞতা নেই তবে খুব বেসিকগুলি বুঝতে পারি understand আমি ডাটাবেস তৈরি এবং সাধারণ ফর্মগুলি সম্পর্কে কিছুটা পড়েছি।
আমরা শীঘ্রই আন্তর্জাতিক ক্লায়েন্ট থাকা শুরু করতে পারি, তাই আমি চাই যখন / যখন ঘটে তখন ডাটাবেসটি ফেটে না যায়। আমাদের বর্তমানে ক্লায়েন্ট হিসাবে কয়েকটি বিভাগ রয়েছে, বিভিন্ন বিভাগ সহ (যেমন এসিএমই প্যারেন্ট সংস্থা, এসিএমই স্বাস্থ্যসেবা বিভাগ, এসিএমই বডি কেয়ার বিভাগ)
আমি যে স্কিমা নিয়ে এসেছি তা হ'ল:
- ক্লায়েন্ট দৃষ্টিকোণ থেকে:
- ক্লায়েন্টরা প্রধান টেবিল
- গ্রাহকরা যে বিভাগের জন্য কাজ করেন তাদের সাথে লিঙ্কযুক্ত
- বিভাগগুলি একটি দেশের চারদিকে ছড়িয়ে ছিটিয়ে থাকতে পারে: লন্ডনে এইচআর, স্বানসিতে বিপণন ইত্যাদি
- বিভাগগুলি কোনও সংস্থার বিভাগের সাথে সংযুক্ত থাকে
- বিভাগগুলি প্যারেন্ট সংস্থার সাথে সংযুক্ত রয়েছে
- ক্লাস দৃষ্টিকোণ থেকে:
- সেশনগুলি প্রধান টেবিল
- একজন শিক্ষক প্রতিটি অধিবেশন লিঙ্কযুক্ত
- প্রতিটি সেশনে একটি স্ট্যাটাসিড দেওয়া হয়। যেমন 0 - সম্পূর্ণ, 1 - বাতিল হয়েছে
- সেশনগুলি একটি স্বেচ্ছাসেবী আকারের "প্যাকগুলি" হিসাবে বিভক্ত করা হয়
- প্রতিটি প্যাক একটি ক্লায়েন্ট নিযুক্ত করা হয়
- সেশনগুলি প্রধান টেবিল
আমি কাগজের টুকরোতে স্কিমাটি "ডিজাইন" করেছি (আরও স্ক্রিপ্টযুক্তের মতো), এটি তৃতীয় ফর্মটিতে স্বাভাবিক রাখার চেষ্টা করছি। তারপরে আমি এটিকে মাইএসকিউএল ওয়ার্কবেঞ্চে প্লাগ করেছিলাম এবং এটি আমার পক্ষে এটি সুন্দর করে তোলে:
( পূর্ণ আকারের গ্রাফিকের জন্য এখানে ক্লিক করুন )
(উত্স: maian.org )
উদাহরণস্বরূপ ক্যোয়ারী আমি চালাচ্ছি
- ক্রেডিট থাকা কোন ক্লায়েন্টগুলি এখনও নিষ্ক্রিয় (ভবিষ্যতে নির্ধারিত কোনও শ্রেণিবিহীন)
- ক্লায়েন্ট / বিভাগ / বিভাগ প্রতি উপস্থিতির হার কত (প্রতিটি সেশনের স্ট্যাটাস আইডি দ্বারা পরিমাপ করা হয়)
- এক মাসে এক শিক্ষকের কত ক্লাস ছিল
- পতাকা ক্লায়েন্ট যারা উপস্থিতি কম
- এইচআর বিভাগগুলির জন্য তাদের বিভাগের লোকদের উপস্থিতি হারের সাথে কাস্টম প্রতিবেদন
প্রশ্ন (গুলি)
- এটি কি খুব বেশি পরিচালিত বা আমি সঠিক পথে চলেছি?
- বেশিরভাগ প্রশ্নের জন্য একাধিক টেবিলগুলিতে যোগদানের প্রয়োজনীয়তার ফলে একটি বড় পারফরম্যান্স হিট হবে?
- আমি ক্লায়েন্টগুলিতে একটি 'লাস্টেসিওন' কলাম যুক্ত করেছি, কারণ এটি সম্ভবত একটি সাধারণ জিজ্ঞাসা হতে চলেছে। এটি কি ভাল ধারণা বা আমার ডাটাবেসটি কঠোরভাবে স্বাভাবিক রাখা উচিত?
আপনার সময় জন্য ধন্যবাদ
divisions
নাম রয়েছে কলাম divisionid
। আপনি কি অপ্রয়োজনীয় খুঁজে পাচ্ছেন না? শুধু নাম দিন id
। এছাড়াও আপনার টেবিলের নামগুলি সহ _has_
: আমি এটিকে সরিয়ে ফেলব এবং উদাহরণস্বরূপ এটির নাম দেব cities_departments
। ব্যবহারকারীদের ইনপুট মান না DATETIME
হওয়া পর্যন্ত আপনার কলামগুলি প্রকারের TIMESTAMP
হওয়া উচিত । আমার মনে হয় এটা আছে একটি ভাল ধারণা cities
এবং countries
টেবিল। আপনি একক টেবিল সীমাবদ্ধ করতে সমস্যা হতে পারে status
। একটি ব্যবহার বিবেচনা করুন INT
এবং এতে বিটওয়াইজ তুলনা সম্পাদন করুন- যাতে আপনি আরও অর্থ ধরে রাখতে পারেন