আমার কী ব্যবহার করা উচিত? একটি স্ট্রিং বা 15 পূর্ণসংখ্যার ক্ষেত্র?


9

আমি একটি ছাত্র ট্র্যাকিং প্রোগ্রাম বিকাশ করছি যেখানে আমার 15 টি পরীক্ষার নম্বর সংরক্ষণ করতে হবে।

আমি অঙ্কগুলি স্ট্রিং হিসাবে সংরক্ষণ করতে পারি এবং যখন প্রয়োজন হয় তখন সেগুলিকে বিভক্ত করতে পারি যেমন পাটিগণিত ক্রিয়াকলাপ সম্পাদন করার মতো উদ্দেশ্যে। তবে আমার যতটা সম্ভব পারফরম্যান্স দরকার।

কোনটা ভাল? একটি একক স্ট্রিং ক্ষেত্র, বা 15 স্বতন্ত্র int ক্ষেত্র?


"15 পরীক্ষার নম্বর" - তাই একক পরীক্ষার একাধিক পছন্দ বা 15 টি স্কোরের মতো?
rfusca

15 টি পরীক্ষার স্কোর
মাইক

1
ডেটাবেসের ধরণ (ইনডেক্সের সাথে traditionalতিহ্যবাহী সম্পর্ক সম্পর্কিত কী?) এবং ডেটা অ্যাক্সেস এবং ব্যবহারের ধরণগুলির প্রয়োজনীয়তা সম্পর্কে আরও তথ্য ছাড়া আপনার কোন নকশাটি ব্যবহার করা উচিত এবং এটি কীভাবে সম্পাদন করবে তা বলা মুশকিল।
ক্যাড রক্স

উত্তর:


27

আপনি যদি ইতিমধ্যে বিভাজন এবং কম্পিউটিং সম্পর্কে কথা বলছেন তবে এটিকে অ্যারে হিসাবে সংরক্ষণ করবেন না

আপেক্ষিক তত্ত্ব এবং traditionalতিহ্যবাহী নরমালাইজেশন বিধি এবং মতবাদ নির্বিশেষে, এটি কেবল একটি নকশা যা আপনাকে ন্যূনতম নমনীয়তা দেয়।

প্রতিটি পরীক্ষার ফলাফলকে এক সারি করে নিন।

আমি সবকিছু অনুমান করার চেষ্টা করছি না, তবে এখানে প্রচুর পরিমাণে জিনিস রয়েছে যা এটি আরও দানাদার (এবং, হ্যাঁ, স্বাভাবিকীকরণ করা) এবং কেবলমাত্র এত সামান্য জায়গার ব্যয়বহুল ডিজাইনের সুবিধার্থে যা আপনার প্রয়োজন হতে পারে এবং এখনই প্রয়োজন হতে পারে এবং হতে পারে বা ভবিষ্যতে প্রয়োজন হতে পারে:

  • সর্বোচ্চ এবং সর্বনিম্ন ফলাফল বের করে দিচ্ছেন? আপনাকে আপনার অ্যারেটি কেটে বাছাই করতে হবে।

  • গড়? আপনাকে এটিকে টুকরো টুকরো করে টুকরো করতে হবে

  • পরীক্ষার ফলাফল বিশ্লেষণ করে শিক্ষার্থী জুড়ে? আপনাকে টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো করতে হবে

  • গণনার জন্য বাছাই করা হচ্ছে (বা উদাহরণস্বরূপ ব্রিটিশ জিসিএসই, যেখানে এটি 7 হিসাবে এবং 2 বি হতে পারে)? আপনি স্লাইস এবং বাছাই করতে হবে

নোট করুন যে এই সমস্ত কাটা এবং বাছাই একটি সূচকযুক্ত, সাধারণ নকশায় খুব সস্তায় আসে।


4
শুধু আমি যা বলতে যাচ্ছিলাম তবে আপনি এটি আরও ভাল বলেছেন! এক স্ট্রিংয়ে মাল্টিপল মানগুলি সংরক্ষণ করা যেকোন ডাটাবেসের জন্য সবচেয়ে খারাপ নকশা পছন্দ।
এইচএলজিইএম

+1 খনি থেকে আরও দুর্দান্ত ব্যাখ্যা। আমি খুব সংক্ষিপ্ত lol প্রবণতা ।
rfusca

12

স্কোরগুলির জন্য, পারফরম্যান্স অনুসারে, স্পষ্ট বিজয়ী এটিকে এমনভাবে কিছুতে সঞ্চয় করছেন;

create table test_scores
(
  student_id int,
  test_id int,
  score int
);

এটির ক্যোয়ারী করা সহজ, আপডেট করা সহজ এবং সহজেই যোগ করা যায় এবং সমষ্টি সম্পাদন করা খুব সহজ এবং দ্রুত। "এই তথ্যটি একটি স্ট্রিং হিসাবে আমাকে বিভক্ত করতে হবে" বা "একটি কলামে স্টোর" হিসাবে পছন্দ করে দেওয়া ... বিজয়ী প্রায় সবসময় একটি আরডিবিএমএস-এর বেশিরভাগ ব্যবহারের ক্ষেত্রে "একটি কলামে স্টোর" হতে চলেছে।


যদি এটি সর্বদা 15 টি পরীক্ষার সমান সেট থাকে, তবে এটির পক্ষে ভাল হতে পারে যে তাদের সংরক্ষণ করুন (15 কলাম) প্রক্রিয়াটি দ্রুত is একটি প্রশ্ন, আপনি উদ্দেশ্যমূলকভাবে কোনও পূর্ণসংখ্যার ডেটা প্রকারের প্রস্তাব করেছিলেন?
এডওয়ার্ড ডোর্টল্যান্ড

অতিরিক্তভাবে, 1 জন শিক্ষার্থীর প্রতি 15 টি পরীক্ষার জন্য আপনি এখন 15 বার স্টুডেন্ট আইডি এবং একটি পরীক্ষার আইডি অতিরিক্ত সঞ্চয় করছেন।
এডওয়ার্ড ডর্টল্যান্ড


6
@ এডওয়ার্ডডোর্টল্যান্ড এটি না হওয়া অবধি সর্বদা 15 হবে।
তারপরে 21

1
@ অ্যাডওয়ার্ড ডোর্টল্যান্ড: গণনা ঠিক আছে। এখন, আপনার প্রয়োজনীয় সূচকগুলির জন্য আপনি কি সেগুলি করতে পারেন?
ypercubeᵀᴹ

1

আপনি যতক্ষণ ক্ষুদ্রতর (0 থেকে 255) ব্যবহার করে চর (15) বা 15 টিনিয়েন্ট ব্যবহার করে তা একই (আকার অনুসারে) হবে। সুতরাং কর্মক্ষমতা দৃষ্টিকোণ থেকে, আপনি এক্সট্রাকশন এবং স্ট্রিং হ্যান্ডলিংয়ে সংরক্ষণ করার পরে 15 টি ক্ষুদ্র চিহ্নের জন্য যান।

হালনাগাদ

যদি চিহ্নগুলি দ্বিগুণ হয় তবে আপনার CHAR (30) দরকার হবে এবং এটি 15 গুণ আকারের দ্বিগুণ।


9
এই অত্যন্ত সাধারণ নকশাটি দেওয়া হয়েছে, যদি এই গ্রহে এমন একটি প্রতিষ্ঠান রয়েছে যাতে আধুনিক আরডিবিএমএসে পারফরম্যান্স সমস্যা তৈরির জন্য পর্যাপ্ত শিক্ষার্থী 15 টি পরীক্ষায় (চিহ্ন সহ) বসে থাকে তবে আমি আজ রাতে ঘুমোতে কাঁদব।
ফিলি

1
যদি চিহ্নগুলি ডাবল ডিজিট হয়? আপনি কীভাবে গণনা করতে পছন্দ করেন তার উপর নির্ভর করে ক্ষুদ্রতর ইনট 0 থেকে 255 বা -127 থেকে 127 পর্যন্ত স্কোরগুলি কভার করে। সুতরাং যেহেতু স্কোরগুলি খুব কমই নেতিবাচক হয়, যা একটি পরীক্ষার জন্য 250+ পয়েন্ট দেয় এবং বেশিরভাগ পরীক্ষায় 0-100% স্কেল হয়। আমি মনে করি টিনিন্যান্ট এখানে একেবারে দরকারী।
jcolebrand

হ্যাঁ আমরা সম্মত হলাম, আমি সরলভাবে বলছিলাম যে একক অঙ্কের চিহ্ন হিসাবে ডাবল ডিজিট চিহ্ন থাকলেও এটি চর হিসাবে সংরক্ষণ করা আরও খারাপ হয়ে যায়। তার পর থেকে আপনার চর (15) এর পরিবর্তে চর (30) লাগবে। ডাবল ডিজিট বা না থাকাকালীন, 15 টি ছোট ints সর্বদা মাত্র 15 বাইট হবে।
এডওয়ার্ড ডোর্টল্যান্ড

-1 কারণ এই উত্তরটি সারির নকশার প্রতি ক্ষেত্রগুলির জন্য সুপারিশ করে যা প্রতিটি পরীক্ষার ফলাফলের জন্য নিজের পোস্টে সংরক্ষণের চেয়ে আরও নিকৃষ্ট হয় অন্যান্য পোস্টের দ্বারা প্রস্তাবিত
चमत्कार 173
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.