আমার কখন এসএসকিউএল-এ UNSIGNED এবং স্বাক্ষরিত INT ব্যবহার করা উচিত? কী ব্যবহার করা ভাল বা এটি কেবল ব্যক্তিগত পছন্দ? কারণ আমি এটি এরকম ব্যবহার করতে দেখেছি;
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
এবং
id INT(11) NOT NULL AUTO_INCREMENT
আমার কখন এসএসকিউএল-এ UNSIGNED এবং স্বাক্ষরিত INT ব্যবহার করা উচিত? কী ব্যবহার করা ভাল বা এটি কেবল ব্যক্তিগত পছন্দ? কারণ আমি এটি এরকম ব্যবহার করতে দেখেছি;
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
এবং
id INT(11) NOT NULL AUTO_INCREMENT
উত্তর:
UNSIGNEDকেবল ধনাত্মক সংখ্যা (বা শূন্য) সঞ্চয় করে। অন্যদিকে, স্বাক্ষরিত নেতিবাচক সংখ্যা সঞ্চয় করতে পারে (অর্থাত্, নেতিবাচক চিহ্ন থাকতে পারে )।
এখানে প্রতিটি INTEGERধরণের মানের ব্যাপ্তিগুলির সারণি রয়েছে :

সূত্র: http://dev.mysql.com/doc/refman/5.6/en/integer-tyype.html
UNSIGNEDথেকে শুরু 0করে n, স্বাক্ষরিত রেঞ্জগুলি প্রায় -n/2থেকে শুরু করে n/2।
এই ক্ষেত্রে, আপনার একটি AUTO_INCREMENTআইডি কলাম রয়েছে, সুতরাং আপনার নেতিবাচক হবে না। সুতরাং, ব্যবহার করুন UNSIGNED। আপনি যদি কলামটির UNSIGNEDজন্য ব্যবহার না করেন তবে AUTO_INCREMENTআপনার সর্বাধিক সম্ভাব্য মান অর্ধেক বেশি হবে (এবং মান সীমাটির নেতিবাচক অর্ধেক অব্যবহৃত হবে)।
UNSIGNEDমাইএসকিউএল-নির্দিষ্ট এবং না একটি প্রমিত এসকিউএল বৈশিষ্ট্য। এর অর্থ UNSIGNEDহ'ল এসকিউএএলএলচেমির মতো স্ট্যান্ডার্ড এসকিউএল লক্ষ্য করে সফ্টওয়্যার লাইব্রেরিগুলি ব্যবহার করার সময় কোনও আলাদা আরডিবিএমএসে ভবিষ্যতের স্থানান্তরকে আরও জটিল করে তুলতে পারে বা অসুবিধার কারণ হতে পারে। আমি মনে করি এটি উত্তরের একটি অংশ হওয়া উচিত।
UNSIGNEDঅ-নেতিবাচক পূর্ণসংখ্যার জন্য ব্যবহার করুন ।
Negativeণাত্মক পূর্ণসংখ্য মানের জন্য, SIGNEDব্যবহৃত হয় এবং অ-নেতিবাচক পূর্ণসংখ্যা মানের UNSIGNEDজন্য ব্যবহৃত হয়। এটি সর্বদা UNSIGNEDপ্রাথমিক কী হিসাবে আইডির জন্য ব্যবহার করার পরামর্শ দেয় ।
আমি একমত না না vipin CP ।
সত্যটি হ'ল প্রথম বিটটি সাইনটি উপস্থাপনের জন্য ব্যবহৃত হয়। তবে 1টি negativeণাত্মক এবং 0 টি ধনাত্মক মানের জন্য। আরও বেশি নেতিবাচক মানগুলি বিভিন্ন উপায়ে কোড করা হয় (দুইটির পরিপূরক)। TINYINT সহ উদাহরণ:
The sign bit
|
1000 0000b = -128d
...
1111 1101b = -3d
1111 1110b = -2d
1111 1111b = -1d
0000 0000b = 0d
0000 0001b = 1d
0000 0010b = 2d
...
0111 1111b = 127d
আমি একটিতে যুক্ত করতে চাই একটি বিষয় signed int, যা এটি default value in mysql, 1 bitপ্রতিনিধিত্ব করতে ব্যবহৃত হবে sign। -1 for negative and 0 for positive.
সুতরাং যদি আপনার অ্যাপ্লিকেশনটি কেবল ইতিবাচক মান সন্নিবেশ করে তবে এটি স্বাক্ষরবিহীন আরও ভালভাবে উল্লেখ করা উচিত।
আপনি যে সংখ্যার সঞ্চয় করতে চলেছেন তা যদি আপনি জানেন তবে আপনার সেই অনুযায়ী চয়ন করতে পারেন। এক্ষেত্রে আপনার 'আইডি' রয়েছে যা কখনই নেতিবাচক হতে পারে না। সুতরাং আপনি স্বাক্ষরবিহীন int ব্যবহার করতে পারেন। স্বাক্ষরিত int এর ব্যাপ্তি: -n / 2 থেকে + n / 2 স্বাক্ষরযুক্ত স্বাক্ষরের প্রান্ত: 0 থেকে n তাই আপনার কাছে ইতিবাচক সংখ্যার দ্বিগুণ উপস্থিত রয়েছে। সেই অনুযায়ী চয়ন করুন।