নেতিবাচক কী ব্যবহার করা হয়?


12

স্ট্যান্ডার্ড এসকিউএল ডেটাবেসগুলি ব্যবহার করার ক্ষেত্রে কিছুটা নতুন (বর্তমানে বেশিরভাগ মাইএসকিউএল নিয়ে কাজ করছেন) আমি এখনও এর অনেকগুলি ব্যবহারের বাইরে চলি না।

কখন এবং কেন কোনও টেবিলকে সূচকযুক্ত নেতিবাচক (বা বরং স্বাক্ষরিত) কীগুলি রাখা কার্যকর?


5
প্রথমত, যে কেউ প্রতিক্রিয়া না রেখে মানসিক চাপ দিচ্ছে, আপনি একটি বিদ্রূপ করছেন। পরবর্তী, এই দুর্দান্ত প্রশ্নের উত্তর।
jcolebrand

1
এই বিষয়টি আগ্রহজনক। আমি ব্যক্তিগতভাবে এই ধারণাটি কখনও শুনিনি। এই প্রশ্নটি কখনই হ্রাস করা উচিত হয়নি। এই ধারণাটি প্রবর্তনের জন্য আমার কাছ থেকে +1।
রোল্যান্ডোমাইএসকিউএলডিবিএ

উত্তর:


13

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

যেহেতু আমরা আমাদের কীগুলির জন্য কেবল ইতিবাচক ভিত্তিক সংখ্যা ব্যবহারে সীমাবদ্ধ নই, তাই এটি বিবেচনা করে বিবেচনা করা উচিত যে একটি স্বাক্ষরপ্রাপ্ত ইন্টিরিটি কেবলমাত্র 2 বিলিয়ন ডলারে যাবে, অন্যদিকে স্বাক্ষরযুক্ত ইনট 4 মিলিয়ন ডলারে যাবে। তবে একটি সাইনড ইনট ব্যবহার করে প্রাথমিক মানটি -2 বিলিয়ন ডলারে সেট করে এবং একটিতে ইনক্রিমেন্ট নির্ধারণে কোনও সমস্যা নেই। Billion 2 বিলিয়ন রেকর্ডের পরে আপনি "শূন্য" টিপুন এবং তারপরে আপনি 2 বিলিয়ন ডলার অবিরত রাখবেন।

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

কীটি কার্যকর হয় তা গুরুত্বপূর্ণ।

নেতিবাচক ছিল এমন কীগুলি মঞ্জুরি দেওয়া কেন কার্যকর হবে তা সম্পর্কে আমি কয়েকটি কারণ প্রস্তাব করতে পারি:

আপনি যদি বিক্রয় ব্যবস্থায় নেতিবাচক বিক্রয় অর্ডার সংখ্যা হিসাবে ইতিবাচক বিক্রয় অর্ডার সংখ্যার সাথে মিলে প্রতিদানটি নির্দেশ করতে চান, তবে এভাবে সম্পর্ককে সহজ করে তোলে (এটি নির্বোধ এবং খারাপভাবে নকশাকৃত, তবে এটি "স্প্রেডশিট" অর্থে কাজ করবে)।

আপনি যদি কোনও ব্যবহারকারীর টেবিলটি রাখতে চান এবং এটি নির্দেশ করেন যে negativeণাত্মক সংখ্যার সাথেগুলি সিস্টেম নিয়ন্ত্রিত ছিল (চ্যাট ফিড ব্যবহারকারীদের জন্য এটি খুব ভাল কাজ করে)।

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


'কুলুঙ্গি ঘটনাটি' বিট সম্পাদনা করেছেন, কারণ এটি অভিজ্ঞতার কারণে ভুল বোঝাবুঝির চেয়ে বেশি। আকর্ষণীয় পড়া। আমি কিছুটা ভাবছিলাম এমন একটি পরিস্থিতি তৈরি হবে যেখানে কীটির নেতিবাচক মান কোডিংয়ে কোনওভাবে কার্যকর ছিল (i, e এটি নির্দিষ্ট জিনিস বোঝায় না) তবে যখন আপনার দুটি গ্রুপে শক্তিশালী বিভাজন হয় এবং ডোন হয় তখন এটি খুব কার্যকর চিন্তাভাবনা কোনও অতিরিক্ত বুল ব্যবহার করতে চাইছেন না: পি
গ্রেট ক্লোবোন

1
@ গ্রেট ~ সুতরাং আপনি একটি ভাল বক্তব্য রেখেছেন: "কীটির মান কোনওভাবে কোডিংয়ে কার্যকর ছিল" এবং আমি সময়ে সময়ে আমার কীগুলি ঠিক সেই পদ্ধতিতে ব্যবহার করি, তবে এটির ডাটাবেসের দিকটির কোনও যোগসূত্র নেই। ডাটাবেস একটি স্টোরহাউস। অন্যদিকে যে অ্যাপ্লিকেশনটি ডেটা গ্রাস করে সেগুলি মানগুলির যত্ন করে । তবে হ্যাঁ, যে +/- বুলিয়ান একটি ঝরঝরে কৌশল, আমি কেবল এটির প্রভাবের জন্য এটি অনেক সময় ব্যবহার করতে দেখেছি।
jcolebrand

2
এই জাতীয় দ্বৈত উদ্দেশ্যমূলক মান বোঝানোর জন্য -1 একটি খারাপ ধারণা ছাড়া অন্য কিছু। আপনার কোন ইনট এবং একটি বুল দরকার? একটি int এবং একটি বুল ব্যবহার করুন।
জ্যাক বলছেন topanswers.xyz

1
@ জ্যাকপিডগলাস আমি মানুষকে এটি করার জন্য উত্সাহিত করার কথা মনে করি না, আমি দৃ strictly়তার সাথে মনে করছি যে ক্ষেত্র এবং এর ডেটা দুটি পৃথক জিনিস are আপনার ডাউনটাতে কমপক্ষে গঠনমূলক প্রতিক্রিয়া জানানোর জন্য ধন্যবাদ, তবে আমি বলতে পারি না যে পর্যবেক্ষণটির অর্থ "কী কী নেতিবাচক কীগুলি ব্যবহার করা হয়" এর ধারণার আলোকে যেহেতু এটি একটি অ্যাপ্লিকেশন লজিক সমস্যা, কোনও ডাটাবেস স্তর সমস্যা নয় । অ্যাপ্লিকেশন স্তরে কীভাবে এই জিনিসগুলি ব্যবহৃত হয় তা আমি হাইলাইট করতে চেয়েছিলাম, তবে ডাটাবেস স্তরটিতে তাদের কোনও তাত্পর্য নেই।
jcolebrand

1
@ জ্যাকপিডুগ্লাস ~ আমি সেই বিশেষ উদাহরণটি ব্যবহার করেছি কারণ খুব পরিচিত একটি সাইট (সাইটের নেটওয়ার্ক) রয়েছে যা আপনি শুনে থাকতে পারেন যে এটি খুব ভাল কাজ করে, তাই আমি এটিকে খারিজ করতে চাই না, কারণ এটি একটি বৈধ "কৌতুক"। এই ব্যবহারকারী dba.stackexchange.com/users/-1/commune দেখুন এবং তার আইডি কি আমাকে বলুন। আমি আপনাকে প্রায় নিশ্চিত করে বলতে পারি যে ইউজারাইড প্রাথমিক (এবং অন্য অনেক টেবিলে একটি বিদেশী) কী। এটি আপনার কাছে খারাপ অ্যাপ্লিকেশন ডিজাইন করার কারণে, এর অর্থ এটি বৈধ নয়। তবে আবার, এটি ডিবি ডিজাইন নয়, এটি ডোমেন ডিজাইন। মঞ্জুর, ডিবি যুক্তি এটি সমর্থন করে
jcolebrand

10

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

তবে, আপনি স্বাক্ষরিত পূর্ণসংখ্যা ব্যবহার করতে পারলে সাধারণত আপনি আপনার পরিসীমা অর্ধেক হারাবেন।
দেখুন: যখন কোনও টেবিলের ক্ষেত্রটি সর্বাধিক স্বাক্ষরিত বা স্বাক্ষরযুক্ত 32 বিট পূর্ণসংখ্যার কাছে পৌঁছায় তখন কী করবেন?

অন্য উদাহরণ: ছোট প্রতিরূপ পরিস্থিতিতে, একটি সাইটের জন্য নেতিবাচক মান এবং অন্যটির জন্য ইতিবাচক ব্যবহার কোনও প্রদত্ত সারির উত্স সম্পর্কে কিছু অন্তর্নিহিত জ্ঞান দেয়।


এবং নিশ্চিত হয়ে নিন যে আপনি প্রতিটি সাইটে মান ইনপুটটি সীমাবদ্ধ করছেন অন্যথায় আপনার "অন্তর্নিহিত জ্ঞান" ভুল হয়ে গেলে আপনি একটি ভয়াবহ জগাখিচুড়ে পড়ে যাবেন।
জ্যাক বলছেন topanswers.xyz

@ জ্যাকপিডগলাস: আপনি ভুল সাইটে মূল্যবোধ এড়াতে প্রত্যাশনের জন্য ব্যবহার করবেন না
gbn

চেক সীমাবদ্ধতা পাশাপাশি ? এছাড়াও, NOT FOR REPLICATIONআপনি কি জানেন যে এর কোনও মাইএসকিউএল (বা অন্য) এনালগ রয়েছে ?
জ্যাক বলছেন টপান্সওয়ার্স.অক্সিজ

@ জ্যাকপিডগলাস: দুঃখিত, এসকিউএল সার্ভার নন সম্পর্কে নিশ্চিত নন
জিবিএন

8

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

যতক্ষণ ডাটাবেস সম্পর্কিত, কোনও প্রাথমিক কীটির প্রকৃত মান যতক্ষণ তা সারণীর মধ্যে অনন্য হিসাবে ততক্ষণ গুরুত্বপূর্ণ নয়। এটির জন্য -42 এবং 42 একইভাবে 42 এবং 69 এর মধ্যে দুটি পৃথক সংখ্যা - অর্থ কেবল আপনার কোড দ্বারা মূল্যহীনতা বা মানের উপর দেওয়া হবে না imp

স্বাক্ষরযুক্ত পূর্ণসংখ্যার প্রকারের সমর্থন না করা সম্ভবত জটিলতা হ্রাসের উপর ভিত্তি করে একটি ডিজাইনের সিদ্ধান্ত - যার মধ্যে দুটি পৃথক 32 বিট পূর্ণসংখ্যার প্রকারের মধ্যে মান নির্ধারণের সময় রেঞ্জগুলি পরীক্ষা করার বিষয়ে চিন্তা করা উচিত নয়। এটি স্বতঃবৃদ্ধি ক্ষেত্রে সম্ভাব্য সূচীর সংখ্যা সীমাবদ্ধ করে না যা 0 বা 1 থেকে অর্ধেক শুরু করে যা স্বাক্ষরবিহীন প্রকারে (e 4e9 এর পরিবর্তে ~ 2e9) সম্ভব হবে তবে এটি খুব কমই একটি উল্লেখযোগ্য সমস্যা (যদি আপনার প্রয়োজন হয় তবে সম্ভবত আপনি সম্ভবত কোনও 64৪-বিট টাইপের জন্য গিয়েছিলেন সেই পরিমাণের মূল মানগুলির একটি বিশেষত যদি 64৪-বিট আর্কিটেকচার ব্যবহার করে যেখানে এই জাতীয় মানগুলি কম দক্ষতার সাথে প্রসেস করা হয় তবে 32-বিট মানগুলি থাকে) যদিও আপনি যদি পুরো পরিসর এবং প্রয়োজনীয়তা চান স্থান কারণে 32-বিট আটকে আপনি -2,147,483,647 এ বৃদ্ধি শুরু করতে পারেন।


হ্যাঁ, আমি মনে করি আমরা এর আগে এই জমিটি covered
jcolebrand

tinyint স্বাক্ষরবিহীন (0 .. 255)। আমি সাধারণত পূর্ণসংখ্যা কলাম উপর একটি চেক বাধ্যতা তৈরি তা নিশ্চিত করার জন্য মান, নন-নেগেটিভ যেহেতু অবশ্যম্ভাবীরূপে কোড লেখা হবে যে পরোক্ষভাবে এটা অনুমান এবং অদ্ভুত বাগ মধ্যে একরকম একটি নেতিবাচক মান শিহরণ দেখা দেবেই।
এড Avis
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.