ফোন নম্বরটির জন্য ডেটাটাইপ: ভারচার, আইএনটি বা বিগিন্ট?


12

সুতরাং এটি বছরের ডামি প্রশ্ন হবে তবে আমার এটি জিজ্ঞাসা করা দরকার যেহেতু আমি এটির মধ্য দিয়ে প্রথমবার নই pass নিম্নলিখিত সারণির সংজ্ঞাটি একবার দেখুন:

এখানে চিত্র বর্ণনা লিখুন

কলাম কটাক্ষপাত from_numberযা হয় VARCHAR(45)ডান এখন কিন্তু এটি একটি ফোন নম্বর রাখা হবে। যেহেতু আমি জানি না যে কোনও ফোনে সারা বিশ্বে কত নম্বর থাকতে পারে তবে আমি প্রায় সবগুলি কভার করার চেষ্টা করছি। আমি যতটা সম্ভব ডাটাবেস অখণ্ডতা রাখতে চাই তাই আমি মনে করি VARCHARযে এই ধরণের তথ্য রাখার জন্য এটি সঠিক ধরণের নয় - হতে পারে আমি ভুল, আপনি আমাকে বলুন - তাই আমি পরিবর্তনে INTবা এমনকি আমি ভাবছি BIGINT

আমি যখন ওয়ার্কবেঞ্চে একটি কলাম সংজ্ঞায়িত করছি তখন আমার ()ক্ষেত্রে প্রথম ক্ষেত্রে যে ক্ষেত্রে আমি উল্লেখ করেছি সেগুলি সমস্ত ক্ষেত্রে নয় বরং প্রথমগুলির মধ্যে প্রথম বন্ধনীগুলির মধ্যে নম্বর নির্দিষ্ট করা উচিত । সুতরাং আমি যদি এটি করি: BIGINT()আমি এই ত্রুটি পেয়েছি:

এখানে চিত্র বর্ণনা লিখুন

যা এখানে এই মাইএসকিউএল টাইপ সম্পর্কে কিছুটা পড়তে আমাকে গাইড করে । মূলত তথ্যটি হ'ল:

একটি বড় পূর্ণসংখ্যা। ... স্বাক্ষরবিহীন পরিসীমা 0 থেকে 18446744073709551615।

যা আমাকে জিজ্ঞাসা করতে বাধ্য করে: যখন আমি কোনও BIGINT()ধরণের সংজ্ঞা দিচ্ছি তখন বন্ধুত্বের জন্য আমার কী মান নির্ধারণ করা উচিত । (আমি বিজিআইএনটি ব্যবহার করছি কারণ আমি জানি না যে আইএনটি একটি ফোন যতটা সংখ্যা রাখতে পারে - সম্ভবত আমিও ভুল)। মারিয়াডিবি / মাইএসকিউএল ডাটাবেসগুলিতে কলাম তৈরির সঠিক উপায় কোনটি?

যাইহোক আমি আপনার মতামত, অভিজ্ঞতা জানতে চাই এবং অবশ্যই আমি একটি উত্তর পেতে চাই

দ্রষ্টব্য: আমি ইআর ডায়াগ্রাম তৈরির জন্য মাইএসকিউএল ওয়ার্কবেঞ্চের সর্বশেষ সংস্করণটি ব্যবহার করছি। আমি মারিয়াডিবি 10.0.x ব্যবহার করছি


উত্তর:


13

আপনি কীভাবে কোনও এক্সটেনশান সহ একটি ফোন নম্বর হ্যান্ডেল করবেন, যেমন "+ 1-000-000-0000 এক্স 1234"?

দ্রষ্টব্য, "+" নির্দেশ করে যে আন্তর্জাতিক ডায়ালিং বিধি প্রয়োগ করা উচিত; সুতরাং উত্তর আমেরিকা থেকে, সিস্টেম স্বয়ংক্রিয়ভাবে আন্তর্জাতিক কল ইত্যাদির সামনে "011" জানে etc.

এছাড়াও, "1-800-DBA-HELP" এর মতো ফোন নম্বরগুলি সম্পর্কে কী বলা যায়?

আমি সাধারণত পাঠ্য হিসাবে ফোন নম্বর সঞ্চয় করি। এটি বলার পরে, এটি নির্ভর করে আপনার ফোন নম্বর কলামটি কতটা সমালোচিত। যদি আপনি column কলামটি থেকে স্বয়ংক্রিয় ডায়ালারগুলি চালাচ্ছেন, তবে আপনি সত্যিই নিশ্চিত করতে চাইবেন যে কেবলমাত্র সংখ্যা অন্তর্ভুক্ত রয়েছে এবং ডেটাটি সুসংহত ফোন নম্বরগুলি উপস্থাপন করে।

আপনার কাছে এক্সটেনশনের জন্য আলাদা আলাদা কলাম এবং ফোন নম্বর থাকতে পারে যেখানে পাঠ্য রয়েছে, যেমন "1-800-DBA-HELP" উদাহরণটি আমি সরবরাহ করেছি।


হ্যাঁ, তারা সমালোচনা করবে তাই ভবিষ্যতে আমি কোনও ভুল করব না, তার ভিত্তিতে আমি কেবল সংখ্যার অনুমতি দেব, আপনার পরামর্শ কী? একটি নতুন কলাম এক্সটেনশন সংখ্যা রাখা যোগ করা সহজ নাকি আমি মানুষের সংখ্যা প্রবেশ করান লাভ করার উদ্দেশ্যে চান 1-800-DBA-HELPতা ডিজিটের এর
ReynierPM

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

1
আপনি যদি দেশের কোড সহ পুরো নম্বরটি সঞ্চয় করেন তবে আইএনটি অবশ্যই যথেষ্ট বড় নয়। বিগিন্ট সম্ভবত যথেষ্ট বড়।
ম্যাক্স ভার্নন

1
আমি কমপক্ষে 20 সংখ্যা চাই
ম্যাক্স ভার্নন

1
মারিয়াডিবি দিয়ে আপনি একটি অটো ডায়ালারের জন্য কেবল অঙ্কগুলি বের করতে একটি গণিত ক্ষেত্র ব্যবহার করতে পারেন। হতে পারে মাইএসকিউএল 5.7 এ (নিশ্চিত নয়)।
ভেরেস

2

আগে লেখা ছিল:

"মারিয়াডিবি দিয়ে আপনি computedএকটি অটো ডায়ালারের জন্য কেবল অঙ্কগুলি বের করতে একটি ক্ষেত্র ব্যবহার করতে পারেন My এছাড়াও মাইএসকিউএল ৫.7 এর জন্যও কাজ করে।"

এই সম্পর্কে ওপির প্রশ্নের জবাবে ("আপনি আমাকে কী বলছেন তা কি আপনি কিছুটা ব্যাখ্যা করতে পারেন?"), এখানে একটি ব্যাখ্যা দেওয়া হল।

অনেক ডাটাবেস সিস্টেম এখন এই বৈশিষ্ট্যটি চালু করেছে। এগুলি এমন ক্ষেত্র যা " computed", " virtual" বা " generated" নামে পরিচিত যা অন্যান্য ক্ষেত্রের মান থেকে প্রাপ্ত। আপনার আরডিবিএমএসের উপর নির্ভর করে এই বৈশিষ্ট্যের শক্তি পরিবর্তিত হবে। আমি জানি যে ওরাকল, ফায়ারবার্ড, মারিয়াডিবি এবং এখন মাইএসকিউএল 5.7 রয়েছে। অন্যরা সম্ভবত এটিও করে।

একটি সহজ উদাহরণ হ'ল একটি উপাধ কলাম এবং একটি গণিত কলাম থাকবে যা "সঞ্চয় করে" (মনে রাখবেন, তারা ভার্চুয়াল হতে পারে - অর্থাত্ ফ্লাইতে গণনা করা যেতে পারে, বা তারা শারীরিকভাবে ডিস্কে সংরক্ষণ করা যেতে পারে) নামটি সমস্ত রাজধানী হিসাবে, যার ফলে তৈরি হয় সহজ অনুসন্ধান। এইভাবে আপনাকে কেবলমাত্র অনুসন্ধান করতে হবে CAP( LIKEজেনে রাখুন , বলুন ), এটি জেনে যে ডেটা অনুসন্ধান করা হচ্ছে [] computed| virtual| generated] ক্ষেত্রটি মূলধনীয় পাঠ্যে।

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

আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে, আপনি একটি পাঠ্য ক্ষেত্র "+" -> "00" (অথবা আপনার আন্তর্জাতিক ডায়ালিং কোড যাই হোক না কেন) থেকে একটি ডায়ালযোগ্য নম্বর পেতে পারেন। শুধু একটি ভাবনা.


দুর্দান্ত, আপনি কিছু প্রশ্ন যুক্ত করে আপনার প্রশ্নকে কিছুটা উন্নত করতে পারেন? মানে আমি ধারণাটি পেয়েছি তবে মান virtualবা generatedমানগুলি কীভাবে তৈরি করব তা নিশ্চিত নই । আমি ব্যবহারে CONCATবা অন্য কিছুতে ভাবছি তবে একেবারে নিশ্চিত নই। এছাড়াও আপনি CAPSব্যবহার করে কোনও অনুসন্ধানের কথা উল্লেখ LIKEকরতে পারেন আপনিও এর উদাহরণ দিয়ে যেতে পারেন? উড়ে (গণিত virtual) vs persisted () গণনা করা কলামগুলির কার্যকারিতা সম্পর্কে কী ?
রেইনিয়ারপিএম

1

হুম। ফোন নম্বরগুলি দিয়ে তৈরি হয়। ভারচার ব্যবহার করে ব্যবহারকারী যেকোন ধরণের বিন্যাস সংরক্ষণ করতে দেয় (সাথে - বা - এর সাথে এবং এটি আপনার ডেটা দিয়ে দ্রুত একটি গোলমাল সৃষ্টি করে A একটি ফোন # ফর্ম্যাট "দেশ" নির্ভর, মুখোশটি দেশের সাথে আবদ্ধ হওয়া উচিত Ex এক্সটেনশন tension এটি একটি এক্সটেনশন এবং alচ্ছিক, তাই এটি একটি "এক্সটেনশন ফিল্ড" এ সংরক্ষণ করা উচিত int (int এছাড়াও) 1 1-800-DBA-HELP এর জন্য, আমি এটিকে ফ্লাইতে রূপান্তর করব এবং প্রকৃত সংখ্যাটি সংরক্ষণ করব If ​​যদি আপনার সত্যিই প্রয়োজন হয় তবে মানব পঠনযোগ্য ফোন #, এটিকে পৃথক ভারচরণের ক্ষেত্রে সংরক্ষণ করুন।


1

আমি সাধারণত ফোন নম্বরগুলি সাধারণ পাঠ্যে সঞ্চয় করি । ফর্ম্যাট এবং প্রদর্শন এটি ক্লায়েন্ট কোডে ছেড়ে দেয়।

এখানে, এর চেয়েও বেশি, আপনি কীভাবে সঞ্চয় করবেন? আপনি যে ফোন নম্বরটি দিয়ে যাচ্ছেন তা সত্যিই গুরুত্বপূর্ণ।

যদি আপনার ব্যবসায়টি আপনার সিস্টেম থেকে আউটবাউন্ড কল করতে চায় তবে অ্যাপ্লিকেশনটি কেবলমাত্র সংখ্যাগুলি বের করবে। যদি আপনার ব্যবসা আন্তর্জাতিক কল করতে চায় , দেশের কোড এবং অঞ্চল কোডটি পৃথক কলামে সঞ্চয় করুন।

যদি আপনার ব্যবসা প্রতিবেদনের জন্য চায় তবে অ্যাপ্লিকেশনটি ফর্ম্যাট করবে এবং এক্সটেনশান এবং নম্বরগুলি আলাদাভাবে প্রদর্শন করবে।

আমার বোধগম্যতা থেকে ফোন নম্বরটির জন্য সার্বজনীন ডেটা মডেল ডিজাইন করা ভাল ধারণা নয়। প্রতিটি দেশের দেশের কোড বাদে পৃথক নম্বর, এক্সটেনশান এবং অঞ্চল কোড রয়েছে। এছাড়াও, আমি জানতে পেরেছিলাম, কিছু কিছু দেশে এরিয়া কোড নেই।

এটি আপনার প্রশ্নের উত্তর নাও দিতে পারে তবে এটি আমাদের বোঝার প্রশস্ত করতে সহায়তা করবে। ধন্যবাদ.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.