কোনও ডাটাবেসে ভৌগলিক ঠিকানা / অবস্থান সংরক্ষণের সর্বজনীন উপায় হ'ল:
[Address] nvarchar(max) not null
এর জন্য কমপক্ষে প্রোগ্রামিং কোডের প্রয়োজন হয় (এবং তাই রক্ষণাবেক্ষণের ব্যয় হ্রাস করে) এবং কোনও ঠিকানার সাথে পুরোপুরি সামঞ্জস্যপূর্ণ। তবে এটি তিনটি বড় সমস্যা রয়েছে:
ডেটা বৈধতার অভাবের অর্থ এই ক্ষেত্রটি ঠিকানা সংরক্ষণের ব্যতীত অন্য উদ্দেশ্যে ব্যবহৃত হতে পারে। উদ্দেশ্যগুলির মধ্যে একটি হ'ল ঠিকানা ক্ষেত্রে 2 জিবি ডেটা প্রবেশ করে আপনার ডাটাবেসের স্থান পূরণ করার উদ্দেশ্যে ডস আক্রমণ attack
এইভাবে সঞ্চিত ডেটা ব্যবসায়ের বুদ্ধি এবং ডেটা মাইনিংয়ের উদ্দেশ্যে এটি প্রক্রিয়া করা অসম্ভব করে তোলে। উদাহরণস্বরূপ, ভারত থেকে কতজন ব্যবহারকারী রয়েছেন? বলার সহজ উপায় নেই, কারণ এই ঠিকানাগুলি সাধারণ করা হবে না।
ব্যবহারকারীরা ভুল করে একটি অসম্পূর্ণ বা স্পষ্টত ভুল ঠিকানা প্রবেশ করতে পারে।
প্রথম ইস্যুটি প্রশমিত করতে, ক্ষেত্রটিকে আপনি যুক্তিসঙ্গত সীমা হিসাবে মনে করেন সীমাবদ্ধ করুন। ব্যক্তিগতভাবে, আমি 1000 টি অক্ষর দিয়ে শুরু করব এবং তারপরে আপনি যখন কোনও ডেটা যথেষ্ট পরিমাণে সেট করলেন তখন প্রথম ব্যবহারকারীদের দ্বারা প্রবেশ করা ঠিকানার দৈর্ঘ্যের ভিত্তিতে এটি হ্রাস করব।
অন্য দুটি সমস্যা হ্রাস করার জন্য, আপনি একটি তৃতীয় পক্ষের এপিআই ব্যবহার করতে পারেন যা ঠিকানাগুলি বিশ্লেষণ করে এবং দেশ, শহর, ডাক কোড ইত্যাদি সমেত ডেটা সহ আপনাকে উপস্থাপন করে যদি সম্ভব হয়, তবে API এ ঠিকানাটি প্রদর্শন করতে সক্ষম হওয়া উচিত কোনও অসম্পূর্ণ বা ভুল ঠিকানা প্রবেশ করানোর ব্যবহারকারীর জন্য ঝুঁকি হ্রাস করার জন্য একটি মানচিত্র ফিরিয়ে দেওয়া: বেশিরভাগ ব্যবহারকারীরা জানেন যে তারা কোথায় থাকেন এবং মানচিত্রে আলাদা অবস্থান দেখে তাদের তাত্ক্ষণিকভাবে তাদের একটি চিহ্ন প্রদান করে যে তাদের ইনপুটটি পরীক্ষা করা উচিত।
মনে রাখবেন আপনি যেই এপিআই ব্যবহার করুন না কেন এটি নিখুঁত হবে না। এটি বেশিরভাগ ঠিকানাগুলি খুঁজে পাবে, তবে সেগুলির সবগুলিই নয়। এর অর্থ হ'ল যদি এপিআই জানিয়ে দেয় যে ঠিকানাটি নেই, তবে ব্যবহারকারী জোর দিয়ে বলেছেন যে এটিটি রয়েছে , আপনার কোনও অগ্রাধিকার ব্যবহারকারীর উপর বিশ্বাস করা উচিত , এমনকি যদি সে ভুল হতে পারে।
এর অর্থ হ'ল আপনার এখনও মূল ব্যবহারকারীর ইনপুটটি পাশাপাশি থাকা উচিত API এর ফলাফলের পাশাপাশি store এর অর্থ এই যে স্কিমাটি হয়ে যায়:
[RawAddress] nvarchar(max) not null
[ParsedAddress] xml null