ENUM বনাম পূর্ণসংখ্যার প্রকারের সুবিধা এবং অসুবিধা?


110

কিছু এলোমেলো টেবিলের মধ্যে বলতে দাও, আপনার স্ট্যাটাস নামক একটি কলাম রয়েছে । এটি বাস্তব-বিশ্বের মানগুলি সক্ষম বা অক্ষম হবে

এই কলামটির ডেটা টাইপের জন্য কোনও ইন্ট / বুল (1 বা শূন্য) হওয়া বা ENUMমানগুলি enabledএবং ব্যবহারের সাথে কী ব্যবহার করা ভাল disabled? সুবিধা বা অসুবিধাগুলি কী কী?

আসুন কেবল দুটি বৈধ স্থিতির পরিবর্তে বলি, আপনার 4 বা 10 বা আরও বেশি আছে? প্রয়োজনীয় মানগুলির সংখ্যা বাড়ার সাথে সাথে সুবিধাগুলি এবং অসুবিধাগুলি কি একদিকে বা অন্যদিকে চলে যায়?


5
এই প্রশ্নটি সমস্ত মাইএসকিউএল বিকাশকারীদের দ্বারা বুকমার্ক করা উচিত কারণ এটি হৃদযন্ত্র বা বিজয়ের কোনও কারণ হয়ে উঠতে পারে। +1 !!!
রোল্যান্ডোমাইএসকিউএলডিবিএ

উত্তর:


70

কেউ কেন ENUM ব্যবহার করবেন না সে সম্পর্কে 8 টি কারণ সম্পর্কে আমি খুব উদ্ভট তবে তথ্যবহুল নিবন্ধটি পেয়েছি

এমনকি নিবন্ধ ছাড়া, আমি জানি


1
যদিও এই থ্রেডের অন্যান্য উত্তর (গুলি) খুব তথ্যবহুল, তবুও খুব সহায়ক নিবন্ধের কারণে আমি এটিকে উত্তর হিসাবে চিহ্নিত করছি।
জ্যাক উইলসন

6
+1 আপনি অন্য টেবিলগুলির মধ্যে একটি ENUM কলামের সদস্য তালিকাটি পুনরায় ব্যবহার করতে পারবেন না। ENUM এর অন্যান্য DBMS- তে সীমাবদ্ধ বহনযোগ্যতা রয়েছে।
onedaywhen

আমার যদি ক্ষেত্রের একই টেবিলের অন্যান্য রেকর্ডের সাথে সম্পর্ক থাকে তবে আমি কী করতে পারি? উদাহরণস্বরূপ, ধরুন unitsকোনও শপ আইটেমের মডেল যেখানে প্রতিটি রেকর্ডের সম্পর্কিত ইউনিটগুলির সম্পত্তি থাকতে হবে composition। যেমন টন, কেজি, জিএম
সৈয়দবাকআর

নিবন্ধটি সম্পর্কে উদ্ভট কিছুই নয় - এটি দুর্দান্ত! আমার মনে হয় এই পোস্টটিই আমাকে খারাপ করেছিল কেন তারা খারাপ! আমি এটিকে একটি +1 দিয়েছি!
ভ্যারেস

1
নিবন্ধটি ENUM প্রকারের পরিবর্তে একটি ভাল পুরানো টেবিল ব্যবহার করার পরামর্শ দেয়। আমাদের কি এই উত্তরে যুক্ত করা উচিত?
উত্কু

39

ঠিক আছে, প্রথমে আমাদের স্টোরেজের প্রয়োজনীয়তা রয়েছে । আমি ধরে নিতে চলেছি আপনি মানে একটি ক্ষুদ্রকণা (int এর পরিবর্তে)।

  • ENUM 1 বাইট নেয় (255 মানের নীচে থাকলে) বা 2 বাইট (সর্বোচ্চ 65,535 অবধি)
  • টিনিআইন্টে 1 বাইট লাগে (সর্বোচ্চ 255 মান)
  • বুলিয়ান টিনিইন্টের প্রতিশব্দ

সুতরাং, পৃষ্ঠে, তারা সব একই। ENUM এর সাথে যুক্ত স্ট্রিংয়ের মানটির জন্য কিছু মেটাডেটা গ্রহণ করবে যদিও ( পুরানো এসসিআর )

আপনি আরও মান যুক্ত করার সাথে সাথে বলব যদিও কোনও সুবিধা থেকে সরে যেতে শুরু করে ENUM। বিশেষত যদি আপনি টেবিলটি ইতিমধ্যে ব্যবহারের পরে মানগুলি যুক্ত করেন, কারণ আপনাকে টেবিলের কাঠামোটি সামঞ্জস্য করতে হবে।

একটি ব্যবহার করে কি সুবিধা ENUM? মানটি কী বোঝায় তার একটি স্ট্রিং প্রতিনিধিত্ব। এটাই, যতদূর আমি উদ্বিগ্ন। এটি কতটা মূল্যবান তা আপনার আবেদনের উপর নির্ভর করে।


4
একমাত্র আসল সুবিধা উল্লেখ করার জন্য +1: স্ট্রিং প্রতিনিধিত্ব। বাকি সব ধোয়া এগিয়ে যাচ্ছে।
রোল্যান্ডোমাইএসকিউএলডিবিএ

19

আমি খুঁজে পাই ENUM একটি কোড টেবিলের একটি সংক্ষিপ্ত ফর্ম সংজ্ঞা। এর মূল সুবিধাটি হ'ল এটি কোড বর্ণনায় যোগদানের জন্য যোগদানের জন্য প্রয়োজনীয় কোডটি এড়িয়ে চলে। মানগুলি তারা স্ট্রিং আকারে উপস্থিত হলে সেটিংসটিও সহজ করে দেয়।

আমি এটির নিম্নলিখিত অসুবিধাগুলি পেয়েছি:

  • কোড সম্পর্কে অতিরিক্ত মেটাডেটার জন্য কোনও ক্ষমতা নেই।
  • মান যুক্ত করা বা অক্ষম করতে অসুবিধা। (অক্ষম করা কোডগুলি একটি ট্রিগার এবং মেয়াদোত্তীর্ণ ক্ষেত্রের সাথে সম্পন্ন করা যেতে পারে))
  • ডাটাবেসে I18n করা যাবে না।
  • টেবিলগুলি জুড়ে পুনরায় ব্যবহারযোগ্য নয়।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.