মাইএসকিউএল এর কাস্টম ডেটা ধরণের জন্য কোনও সমর্থন আছে? উদাহরণস্বরূপ, জিপ কোডগুলি কোনও varchar(10)
ক্ষেত্রে সংরক্ষণ করা যেতে পারে তবে এগুলিতে একটি int
ফাঁকা বিকল্পের সাথে এবং একটি পতাকা এটি 5 ডিজিট বা 5 + 4 অঙ্কের জিপ কোড কিনা তাতে সংযোগ করা যেতে পারে ।
এই জাতীয় জিনিসগুলির জন্য বিজোড় ডেটা ধরণের ইনস্টল করার কোনও উপায় আছে কি? যতক্ষণ অ্যাপ্লিকেশন সম্পর্কিত, এটি স্ট্রিংয়ের ধরণ হবে, যদি অ্যাপ্লিকেশনটি অবৈধ ডেটা পাস করে তবে কেবল ডাটা ট্র্যাঙ্কেশন (সতর্কতার সাথে বা ছাড়াই) থাকবে।
কাস্টম ফাংশন ব্যবহার করা যেতে পারে (উদাহরণস্বরূপ, এখানে INET_ATON
আইপিভি 4 অ্যাড্রেসগুলির জন্য একটি বিল্ট ইন ফাংশন রয়েছে But তবে এটি zip LIKE '12345%'
সঠিকভাবে সূচিযুক্ত হওয়া উচিত এমন জিনিসগুলির জন্য অনুমতি দেয় না custom কাস্টম ডেটা ধরণের জন্য একটি লিখিত সমর্থন একটি ডেটা টাইপ চিহ্নিত করার অনুমতি দেয় বাছাইযোগ্য হিসাবে। সুতরাং কমপ্যাক্ট zip int
, বাছাই করা হয়, ঠিক যেমন এটি একটি হিসাবে সাজান zip varchar(10)
।
এটি কলামটি স্থির প্রস্থের অনুমতি দেবে, এটি 6 বা 10 বাইট ভেরিয়েবল স্টোরেজটিকে নির্দিষ্ট প্রস্থের 4 বাইতে কাটতে দেবে।
বেশ কয়েকটি প্রয়োগযোগ্য ব্যবহার রয়েছে are
- জিপ কোডস
- IPv6 ঠিকানা
- মিনিট স্তরের নির্ভুলতা এবং এর
2038
চেয়ে কম স্টোরেজ ব্যবহারের তুলনায় ক্ষমতা সহ কাস্টম টাইমস্ট্যাম্প ক্ষেত্রগুলিdatetime
, তবে প্রয়োগের বছরের আগে তারিখগুলি সমর্থন করার দরকার নেই (বলুন যে সেগুলি সিস্টেমের সবচেয়ে পুরনো তারিখগুলি হলে মিন 2007 হতে পারে) - টাইমস্ট্যাম্পগুলি যা ডিএসটি বাস্তবায়িত করে (যা বিদ্যমান বলে মনে হয় না )
- দুটি অক্ষর মার্কিন রাষ্ট্র একটি একক বাইটে সংরক্ষণ করা যেতে পারে
- লম্বা
ENUM
গুলি একটি কাস্টম ডেটা ধরণে পৃথক করা যায় যাতেDESCRIBE
এর আউটপুটটি সমস্ত মোড়কের সাথে দেখতে এত অগোছালো না হয়।
আমি আশা করি যে ডেটা টাইপ হ্যান্ডলারগুলি ফাংশনগুলি যেভাবে সংরক্ষণ করা হয় তার অনুরূপ সংরক্ষণ করা হবে।
কোনও ডাটাবেস ইঞ্জিনে দূরবর্তীভাবে এমন কিছু আছে কি? আমি বেশিরভাগ মাইএসকিউএল ব্যবহার করি, তবে আমি যদি আগ্রহী তখনও যদি এটি প্রয়োগ করা হয়, তবে অ্যাপ্লিকেশনটিকে ফাংশনের মতো একটি ফাংশন কল করতে কম INET_ATON
।
এমএস এসকিউএল এর কাছে প্রকৃতির কিছু আছে বলে মনে হয় তবে এটি কেবল একটি প্রতিশব্দের চেয়ে বেশি কিনা তা আমি জানতে চাই। (উদাহরণস্বরূপ , বা একটি বা বা বা এর জন্য boolean
প্রতিশব্দ হতে পারে ) প্রতিশব্দ আমি এখানে জিজ্ঞাসা করছি না হয়।tinyint(1)
postal_code
char
varchar
(5
9
10)
IPv6
একটি মধ্যে binary(16)
, অথবা (যার জন্য ব্যবহার করা যেতে পারে এটা এলিয়াসিং সীমাবদ্ধ হয় state
গুলি হয়ে enum
গুলি)
int
করবে না - উদাহরণস্বরূপ, কানাডা 'A9A A9A' ফর্ম্যাটটি ব্যবহার করে। জিপ-কোডগুলির জন্য একটি কাস্টম ডেটা ধরণের তৈরি করা সম্ভবত একটি ভাল ধারণা; তবে আপনি কীভাবে তাদের কয়েকটি নিয়ে ডিল করার পরিকল্পনা করছেন তা পুনরায় পরীক্ষা করতে ইচ্ছুক হতে পারেন (উদাহরণস্বরূপ, একক বাইট ক্ষেত্রে রাজ্য সংরক্ষণের সম্ভাব্য 'অন্যান্য' সমস্যা রয়েছে)। এবং তারিখ / সময় ডেটাটাইপগুলি পুনরায় বাস্তবায়িত করবেন না, যদি না প্রদত্ত ব্যক্তিগুলি অ-ব্যবহারযোগ্য অভাব হয় (আকার গণনা করে না) - আপনি কেবল লোককে বিভ্রান্ত করবেন।