টেবিলের নামগুলিতে 'টিবিএল' উপসর্গটি যুক্ত করা কি আসলেই সমস্যা?


92

আমি কিছু ব্রেন্ট ওজার ভিডিও দেখছি ( উদাহরণস্বরূপ, এটির মতো ) এবং তিনি ‘tbl’বা সারণীগুলির সাথে প্রিফিক্সিং না করার পরামর্শ দেন ‘TBL’

ইন্টারনেটে আমি কিছু ব্লগ পেয়েছি যা বলছে এটি ডকুমেন্টেশনে কোনও কিছুই যুক্ত করে না, এবং এটি "এটি পড়তে আরও বেশি সময় নেয়"।

প্রশ্ন এবং বিবেচনা

  • এটা কি আসলেই সমস্যা? কারণ আমি আমার প্রথম ডিবিএ কাজ করার পর থেকে 'টিবিএল' দিয়ে সারণীগুলির উপসর্গ করছি (সিনিয়র ডিবিএ আমাকে সংগঠনের জন্য এটি করতে বলেছিল)।
  • এটি কি এমন কিছু যা আমার থেকে মুক্তি পাওয়ার দরকার? আমি কিছু পরীক্ষা করেছিলাম, একটি সত্যিই বড় টেবিলটি অনুলিপি করে এবং একে 'টিবিএল' উপসর্গটি দিয়েছিলাম, অন্যটি না রেখে, এবং আমি কোনও পারফরম্যান্সের বিষয়টি লক্ষ্য করি না।

66
পাল্টা প্রশ্ন: আপনি কি আপনার প্রোগ্রামিং ভাষায় (জাভা, সি ++, স্কালা, ....) আপনার সমস্ত ক্লাস উপসর্গ করেন Class?
a_horse_with_no_name

78
যখন তারা "এটি পড়তে বেশি সময় নেয়" তখন তাদের পারফরম্যান্সের সমস্যাগুলি বোঝায় না। কোডটি পড়তে মানুষের বেশি সময় লাগে। পড়া আরও সহজ কি? এই বাক্য: Wrdthis wrdis wrda wrdsimple wrdsentence. না এই একটি This is a simple sentence.:?
ypercubeᵀᴹ

3
এই সম্পর্কিত হতে পারে: stackoverflow.com/questions/111933/...
Walfrat

42
এটির বিরুদ্ধে একটি ব্যবহারিক মামলা এখানে। তালিকায় নামার জন্য প্রায়শই টেবিলের নামের প্রথম অক্ষরটি টাইপ করা সহজ। যখন সমস্ত টেবিল 't' দিয়ে শুরু হয় যা আর কাজ করে না। একইভাবে এটি আপনাকে ইন্টেলিজেন্সের সাহায্য করবে না।
shawnt00

30
আমি ডিবিএ নই, আমি প্রোগ্রামার। তবে দয়া করে এটি করবেন না। আপনি আমাকে মন্থর করছেন এবং আমার কোডটি পড়তে এবং বজায় রাখতে আরও শক্ত করছেন। এবং কি জন্য? আমি মোটেই কোনও সুবিধা দেখতে ব্যর্থ।
দাউদ ইবনে করিম

উত্তর:


217

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

চলতি মাসে, তারা যতবার চায় ততবার মানগুলি পুনরায় সেট করতে এবং পুনরায় সেট করতে পারে। এক মাসের চূড়ান্ত 10 দিনে, তারা নম্বরগুলি পুনঃস্থাপন করতে চান -> ইটিএল প্রক্রিয়াকরণ চালান -> পর্যালোচনা প্রতিবেদন দিনে কয়েকবার রিপোর্ট করে। মাসটি সম্পূর্ণ হয়ে গেলে বইগুলি সিল করে দেওয়া হয় এবং তারা মানগুলি পরিবর্তন করতে পারে না।

এটি আশ্চর্যজনক যে কোনও আর্থিক পরিষেবা সংস্থার কতটা আর্থিক ডেটা তৈরি করে ... আমাদের পরীক্ষার ডেটা সেট দিয়ে আমরা বুঝতে পারি নি এমন কিছু কিছু ছিল যা ডেটা ভলিউম তাদের মাসের শেষের পদ্ধতিগুলি অযোগ্য করে তুলতে চলেছিল। নতুন ট্রায়াল রানের পরিবর্তে এটি "চলতি মাসের ডেটা" মুছে ফেলার জন্য ক্রমবর্ধমান দীর্ঘ সময় নিয়েছে।

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

আমি তারপরে মূল টেবিলের মতো একই নামে পার্টিশনযুক্ত ভিউ তৈরি করেছি: মাসিকআলোকেশন। আমরা ডাটাবেসে শারীরিক পরিবর্তন নিয়ে কোনও প্রক্রিয়াই বুদ্ধিমান ছিল না। কোনও প্রতিবেদন ভাঙা হয়নি, সরাসরি অ্যাক্সেস সহ বিশ্লেষকরা কেউই "টেবিলে" এর আগে বা পরে কোনও সমস্যা জানাননি।

দুর্দান্ত গল্প ভাই, তবে কোথায় যাচ্ছ?

তাদের যদি সেখানে নামকরণের সম্মেলন হয়, তবে tbl_ মাসিক অ্যালোকেশন? এখন কি? আমরা কি প্রতিটি ইটিএল, প্রতিবেদন, সংস্থার প্রতিটি অ্যাড-হক স্প্রেডশিট এবং vw_MonthlyAlocation ব্যবহার করার জন্য তাদের আপডেট করার মধ্য দিয়ে প্রচুর ম্যান ঘন্টা ব্যয় করি? এবং তারপরে অবশ্যই এই সমস্ত পরিবর্তনগুলি পরিবর্তন বোর্ডের মধ্য দিয়ে যায় এবং এটি সর্বদা একটি দ্রুত এবং ব্যথাহীন প্রক্রিয়া।

আপনি বস জিজ্ঞাসা করতে পারেন: যে সমস্ত কাজ আবার কোম্পানির পুরষ্কার কি?

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

অথবা আপনি রিলানড্যান্ট মেটাডেটা দিয়ে ডাবল এনকোড বস্তুগুলি ব্যবহার করবেন না। ডাটাবেসটি আপনাকে খুশিতে জানাবে যে একটি টেবিলটি কী, একটি দৃশ্য কী, কোনও টেবিলের মূল্যবান ফাংশন ইত্যাদি etc.

নামকরণের সম্মেলনগুলি ভাল, কেবল সেগুলি দিয়ে নিজেকে কোনও কোণায় আঁকবেন না।


132

এখানে ব্রেন্ট (আপনি যে ছেলেটিকে প্রশ্নে উল্লেখ করছেন)

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


10
আপনি যদি একটি সন্নিবেশ বিবৃতি লিখছেন তবে আমি গুরুত্ব সহকারে আশা করি আপনি ইতিমধ্যে জানেন যে আপনি যে জিনিসটি
জো

@ জো: "আমি আশা করি আপনি জানেন যে আপনি যে জিনিসটি সন্নিবেশ করিয়েছেন সেটি কোনও টেবিল বা একটি দৃশ্য" - এমন পরিস্থিতিতে রয়েছে যেখানে আপনি কোনও দৃশ্যের ভিতরে সন্নিবেশ করছিলেন এবং আপনার কোডের যত্ন নেওয়া উচিত নয় (কিছু ইঞ্জিন ডেটা ম্যানিপুলেশনকে সমর্থন করে সহজ পর্যাপ্ত দর্শন এবং instead ofট্রিগারগুলি আরও জটিল উদাহরণগুলির জন্য এটি সম্ভব করে তুলতে পারে)। যদিও এটি এখনও নামের উপসর্গের প্রয়োজন / প্রয়োজনের দিকে ইঙ্গিত করে না।
ডেভিড স্পিলিট

119

এটি একটি অত্যন্ত বিষয়গত যুক্তি, তবে এখানে আমার গ্রহণ: টিবিএল উপসর্গটি অকেজো।

কোডের দিকে আপনি কতটা পরিস্থিতি দেখছেন এবং কোনও টেবিলে বা অন্য কিছু আছে তা আপনি বলতে পারবেন না?

অবজেক্ট এক্সপ্লোরার-এ টেবিলের তালিকার দিকে তাকালে আপনি যে সন্ধান করছেন সেগুলির সন্ধানের জন্য আপনাকে আরও বেশি কাজ করতে হবে, তা ছাড়া টিবিএল এর কী মান যুক্ত হবে?

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


11
উদাহরণস্বরূপ, পোস্টগ্রেএসকিউএল-তে একটি দৃশ্য বাস্তবে একটি টেবিলও রয়েছে : postgresql.org/docs/9.6/static/rules-views.html - সুতরাং সেখানে পার্থক্যটি আরও কম গুরুত্বপূর্ণ।
dezso

42

এটি একটি ভয়ানক অনুশীলন is

tbl
tbl_
Table_
t_

... প্রযোজনায় তাদের সবাইকে দেখেছি।

আমি বর্তমানে যে পণ্যগুলির সাথে কাজ করছি তার মধ্যে একটির নাম দেওয়া টেবিলের অর্ধেক রয়েছে tbl_whateverএবং অন্য অর্ধেকটির নাম দেওয়া হয়েছে "সাধারণত" - তারা স্পষ্টতই বিকাশকারীদের পেয়েছেন যা বিভিন্ন মান অনুযায়ী কাজ করছে। তাদের আরও খারাপ অভ্যাসগুলির মধ্যে একটি হ'ল কলামের নামগুলির সাথে প্রিফিক্স করা যা বিদেশী কীগুলি রয়েছে fk, তারপরে টেবিলের নাম, fkতারপরে কলামের নাম, যেমন ভয়াবহ কলামের নাম দেয় fktbl_AlarmsfkAlarmsID। নামকরণের এই সম্মেলনটি পুরো tbl_%মন্ত্রের কেবল একটি যৌক্তিক বর্ধন এবং আপনি দেখতে পাচ্ছেন যে এটি কতটা হাস্যকর হয়!

আমি অন্যান্য ডাটাবেস সম্পর্কে প্রায় ভুলে গেছি যা আমাকে প্রতিদিনের ভিত্তিতে কাঁদে। ডেটাটাইপগুলি কলামের নামগুলির উপসর্গ করা হচ্ছে ... dtPaymentDate, কারণ নামটির সত্যই dtউপসর্গের দরকার ছিল ? `


22
কমপক্ষে আপনি কেস সংবেদনশীল ডাটাবেসের সাথে কাজ করছেন না তাই tbl_Foo এবং Tbl_Foo আলাদা আলাদা সত্তা নয় ...
বিলিংক

23

কমডলিডিট করুন প্রিপটো এডজেস্টটিজ অ্যাডঅ্যাওয়ার ন্যু পিপল। প্রো আপনি আপনার পরামর্শ অ্যাডভয়েজ সবসময় nouPrefixes প্রস্তুতির সাথে আপনার অ্যাডজেটেবল nouNames। প্রোআই অ্যাক্সএভ অ্যাভইভেন ভার্স্টার্টেড জারউজিং প্রফর্ম তাদের প্রিপেইন অ্যাডমনাল নরউইটিং।

কমস অ্যাডভিউ দেখুন কীভাবে বিশেষণযোগ্য প্রোটিস ভার্জগুলি? nouPeople auxCan VerUndersস্ট প্রো আপনার ন্যু রাইটিং অ্যাডব্যাটার!



21

এর মতো একটি উপসর্গ ব্যবহার করে হাঙ্গেরীয় নোটেশন নামে পরিচিত । এটির ভিত্তিটি সহজ: আপনি কীভাবে নামকরণ করেছেন তা নির্ধারণ করতে পারেন। প্রোগ্রামিং ভাষাগুলিতে এটি বিশেষত সাধারণ, বিশেষত যখন বিকাশকারীরা দক্ষতার অভাব বা ভাষার বৈশিষ্ট্যগুলির অভাবের দ্বারা কয়েক ডজন পৃষ্ঠাগুলি বিচ্ছিন্ন করে ফর্মগুলি লেখেন। এটি একটি স্মরণীয় সহায়তা যা বিকাশকারীদের ডেটা ধরণের সোজা রাখতে সহায়তা করে।

সাধারণভাবে বলতে গেলে, নামকরণের এই স্টাইলটি সম্ভবত খুব পুরানো কোডে ব্যবহার করা যেতে পারে, বা বিকাশকারীরা যারা কেবলমাত্র শিখছেন (এবং এই অভ্যাসটি শিখতে পেরেছেন), বা যতক্ষণ না তারা মনে করতে পারে ততক্ষণে এটি করে চলেছেন। আমার অভিজ্ঞতায়, আমি পর্যবেক্ষণ করেছি যে হাঙ্গেরিয়ান স্বীকৃতি অনভিজ্ঞ বিকাশকারীদের সাথে কোনও প্রোগ্রামিং কোর্স বা টিউটোরিয়াল দ্বারা পরিচয় না করা হলে স্বতঃস্ফূর্তভাবে দেখতে পাওয়া অপেক্ষাকৃত বিরল; তারা i বা x বা acct এর মত চলক নাম ব্যবহার করার সম্ভাবনা বেশি ।

নিজেকে কোনও কোণে রঙ করার পাশাপাশি, এটি সত্যিই কেবল পরিপূর্ণ। এসকিউএল সিনট্যাক্সটি যথেষ্ট যথাযথ যে কোনও বিকাশকারী সর্বদা তাদের জানা উচিত যদি তারা কোনও ক্ষেত্র, রেকর্ড, বা ডেটা সেট (যা কোনও টেবিল, দৃশ্য ইত্যাদি হতে পারে) সম্পর্কে কথা বলছেন তবে তারা যদি থাকে always এটি একটি দুর্দান্ত শিক্ষণ সহায়তা তৈরি করতে পারে, তবে এই সিনট্যাক্সটি সাধারণত উত্পাদন ডেটাবেজে থাকা উচিত নয়। এটি সুগঠনের ক্ষতি করতে পারে এবং আপনি যে সারণীটি সন্ধান করছেন তা সন্ধান করা আরও কঠিন করে তুলবে, বিশেষত টিবিএল বনাম টেবিল বনাম ট্যাব ইত্যাদির মতো বেশ কয়েকটি বিকল্প নামকরণ থিম পপআপ করে if

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


14
অনেক লোকের মতো যারা হাঙ্গেরীয় স্বরলিপিটি অপব্যবহার করে, আপনার উত্তরটির বিরুদ্ধে বিতর্কটি অ্যাপস হাঙ্গেরিয়ান এবং সিস্টেম হাঙ্গেরীয়ের মধ্যে পার্থক্যটিকে পুরোপুরি মিস করে।
বেন ভয়েগট

8
@ বেনভয়েগ, খুব সত্য। তবে আপনি বাধ্যতামূলক লিঙ্কটি ভুলে গেছেন ।
ওয়াইল্ডকার্ড

12

আমি কিছু ব্লগ পোস্ট পড়েছি এই বা এই (আছে বেশ কিছু) পর আমি আমার প্রথম এসকিউএল সার্ভার ইন্সটান্স উত্তরাধিকারসূত্রে এবং অনেক বস্তু লক্ষ্য যেখানে পূর্বে সমাধান, আমি একটি কম বাগাড়ম্বরপূর্ণ পদ্ধতি এবং একবচন নামকরণ কনভেনশন সঙ্গে নতুন কিছু উন্নয়নশীল শুরু করতে চাই ( আমার পক্ষে [ এবং সম্ভবত অন্যান্য বিকাশকারীগণ ] অবজেক্ট রিলেশনাল ম্যাপিংয়ের কাজ করা অনেক সহজ easier

সর্বাধিক ব্যবহৃত উপসর্গগুলির একটি ছিল Tblবা tbl, তবে তখন আমার ছিল এবং এমনকি ছিল TBLandtbl_*TableName*_Tbl

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

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

সুতরাং শেষ পর্যন্ত আমি অবশ্যই বলতে চাই ব্যক্তিগত পছন্দের বিষয় তবে এটির ধারাবাহিকতার সাথেও অনেক কিছু করার আছে এবং আপনি যদি এই রাস্তায় নেমে যান তবে কমপক্ষে আপনার লোকেরা অনেকটা খুশি হবেন আপনি আপনার বিকাশের পাশাপাশি এটি একই রাখবেন।

... অন্যদিকে আমি কেবল বলতে চেয়েছিলাম, আপনি যদি অন্য পদ্ধতি গ্রহণ করেন এবং অ-উপসর্গ, একক-নাম সারণীতে যান তবে আপনি ভবিষ্যতে কোনও বিকাশকারীকে খুশি করতে পারবেন, এবং সুখের চেয়ে গুরুত্বপূর্ণ আরও কী কী?


11

হ্যাঁ, একটি উপসর্গ যুক্ত করা যা বস্তুর প্রকারকে বোঝায় একটি সমস্যা এবং অপ্রয়োজনীয় । কারণ,

  1. কখনও কখনও বস্তু কিছু যেমন জীবন শুরু কিন্তু হবে অন্য কিছু হয়ে উঠছে শেষ পর্যন্ত । (যেমন টেবিল tblXxxবিভক্ত করা হয়েছে tblXxxYএবং tblXxxZকিছু কারণে এবং প্রতিস্থাপিত একটি দৃশ্য যে দুটি নতুন টেবিল যোগদান করেন। এখন আপনি একটি দৃশ্য আছে বলা tblXxx)।
  2. আপনি যখন tblসম্পাদকটিতে টাইপ করেন, এর স্বতঃপূরণ বৈশিষ্ট্যটি 45 সেকেন্ডের জন্য স্থির থাকে এবং তারপরে আপনাকে 4000 এন্ট্রিগুলির একটি তালিকা দেখায়।

কিন্তু ...

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

আমাদের একটি সত্তা ভিত্তিক ইআরপি সিস্টেম রয়েছে, যেখানে ব্যবসার যুক্তিটি ওরাকল পিএল / এসকিউএল তে লেখা আছে is এটি প্রায় দুই দশক পুরাতন, তবুও একটি অত্যন্ত স্থিতিশীল সিস্টেম (এটি কোনও উত্তরাধিকার ব্যবস্থা নয় We আমরা ক্রমাগত এটি বিকাশ করছি)।

সিস্টেমটি সত্তা ভিত্তিক, এবং প্রতিটি সত্তা একটি সারণী, একাধিক ভিউ, একাধিক পিএল / এসকিউএল প্যাকেজ এবং অন্যান্য ডাটাবেস অবজেক্টের হোস্টকে যুক্ত করে।

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

  1. ডেটা সংরক্ষণ করার টেবিল [ TABপ্রত্যয়]:
    • CUSTOMER_ORDER_TAB
    • CUSTOMER_INVOICE_TAB
  2. ক্লায়েন্টদের দ্বারা ব্যবহৃত ভিউ [প্রত্যয় নেই]:
    • CUSTOMER_ORDER
    • CUSTOMER_INVOICE
  3. প্রাথমিক ক্রিয়াকলাপের জন্য ইন্টারফেস; (পিএল / এসকিউএল প্যাকেজ) [ APIপ্রত্যয়]:
    • CUSTOMER_ORDER_API
    • CUSTOMER_INVOICE_API
  4. জেনারেটর রিপোর্ট করুন; (পিএল / এসকিউএল প্যাকেজ) [ RPIপ্রত্যয়]:
    • CUSTOMER_ORDER_RPI
    • CUSTOMER_INVOICE_RPI
  5. প্রাথমিক কীগুলির জন্য সূচকগুলি [ PKপ্রত্যয়]:
    • CUSTOMER_ORDER_PK
    • CUSTOMER_INVOICE_PK
  6. মাধ্যমিক সূচকগুলি [ IXপ্রত্যয়]:
    • CUSTOMER_ORDER_XXX_IX
    • CUSTOMER_INVOICE_XXX_IX(যেখানে XXXসূচকের ব্যবহার বর্ণনা করে)।
  7. ... ইত্যাদি।

এটি প্রকৃতপক্ষে অ্যাপ্লিকেশন হাঙ্গেরীয়ের একটি ফর্ম (লক্ষ্য করুন যে একই ধরণের বস্তুর উদ্দেশ্য অনুসারে পৃথক প্রত্যয় থাকতে পারে)। তবে, উপসর্গের পরিবর্তে প্রত্যয় সহ। এই সিস্টেমটি কীভাবে পড়া সহজ তা আমি আপনাকে যথেষ্ট বলতে পারি না। IntelliSense আসলে কাজ করে কারণ TBL4000 ফলাফল টাইপ করার এবং পাওয়ার পরিবর্তে , আমি Customerসত্ত্বার সাথে সম্পর্কিত সমস্ত বস্তু টাইপ করতে এবং পেতে পারি Customer*

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

বলার পরেও, আপনার যদি এই ধরণের ব্যবস্থা না থাকে তবে অবজেক্টের ধরণের উপসর্গ বা প্রত্যয় ব্যবহারের কোনও ব্যবহার নেই

মনে রাখবেন যে আমরা মত প্রত্যয় ব্যবহার করেন নি _table, _packageঅথবা _view(অর্থাত টাইপ বস্তুর)। উদাহরণস্বরূপ, (3) এবং (4) উভয়ই PL / SQL প্যাকেজ, তবুও পৃথক প্রত্যয় ব্যবহার করুন। এটি (5) এবং (6) এর জন্য একই, উভয়ই সূচক। সুতরাং প্রত্যয়টি প্রকারের পরিবর্তে উদ্দেশ্য ভিত্তিক ।


3
আমি এই ইআরপি পণ্যটি বাস্তবায়ন করছি, এবং নামকরণ কনভেনশনটি "দৃষ্টিভঙ্গির পরামর্শ নিন, একটি এপিআই দিয়ে আপডেট করুন" এবং এই ব্যবসায়ের যুক্তি বিবেচনা না করে সরাসরি কোনও টেবিল আপডেট করার প্রলোভনটিকে আরও শক্তিশালী করতে কার্যকর is
grahamj42

10

tl; dr এটি (খুব সম্ভবত) অনর্থক তথ্য যুক্ত করে, যা জ্ঞানীয় ওভারহেডের দিকে পরিচালিত করে এবং তাই এটি অপসারণ করা উচিত।

প্রসঙ্গটি একটি বিশেষ জিনিস, বিশেষত কম্পিউটার সিস্টেমগুলিতে। প্রসঙ্গের বাইরে আপনি সম্ভবত বলতে পারবেন না যাকে বলা usersহয় কোনও টেবিল, একটি দৃশ্য, সঞ্চিত প্রক্রিয়া বা পুরোপুরি অন্য কিছু whether লিগ্যাসি (বা কেবল খারাপভাবে লেখা) সিস্টেম এবং ভাষাগুলি কোড পড়ার সময় প্রায়শই প্রসঙ্গে কাজ করা কঠিন করে তোলে। উদাহরণস্বরূপ, বাশ-এ, আপনি কমপক্ষে ফাংশনের বিষয়বস্তু function usersনা পড়ে কী করতে পারবেন তা বলতে পারবেন না । জাভাতে, Map<Uid,UserDetails> users()বেশ স্বচ্ছ এবং আপনি সহজেই বিশদটি খনন করতে পারেন।

এসকিউএল টেবিলগুলিতে এই যুক্তিটি গ্রহণ করা, কখন এটি গ্রাহকদের usersপক্ষে এটি কোনও টেবিল বা দৃশ্য কিনা তা জানতে কার্যকর হবে? অন্য কথায়, একটি tblউপসর্গ কি কোনও গ্রাহককে এমন কিছু বলবে যা তারা জানে না এবং জানা দরকার?আশা করি বিপুল সংখ্যক গ্রাহকরা এর বিপরীতে ডিএমএল এবং ডিকিউএল অনুসন্ধান লিখবেন। তাদের জন্য এটি অন্য কোনও ডেটা উত্স হওয়া উচিত, এবং এটির দৃষ্টিভঙ্গি বা টেবিলটি পার্টিশনযুক্ত, এইচডিডি বা এসএসডিতে সঞ্চিত, বা অন্য কোনও প্রযুক্তিগত বিশদ সম্পর্কে ঠিক ততটাই প্রাসঙ্গিক হওয়া উচিত। কিছু দুষ্প্রাপ্য ডিডিএল / ডিসিএল অনুসন্ধান চালানোর জন্য অবশ্যই ডিবিএর এই বিবরণগুলি জানা দরকার, তবে সংখ্যালঘু যারা স্কিমার নেভিগেট করতে এবং সত্যিকারভাবে সমস্ত প্রযুক্তিগত বিশদ বিবরণ পেতে জানে তাদের পক্ষে নাম স্থান দূষিত করার পক্ষে এটির পাল্টা ফলপ্রসূ বলে মনে হচ্ছে।


9

রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেমের অন্যতম বৈশিষ্ট্য এটি ক্লায়েন্টদের কাছে তথ্যের যৌক্তিক উপস্থাপনাটি শারীরিক স্টোরেজ থেকে পৃথক করে। পূর্ববর্তীটি একটি সারিবদ্ধ কলাম। পরবর্তীটি স্টোরেজ ভলিউমের ফাইলগুলির মতো। একে অপরের মানচিত্র তৈরি করা ডিবিএমএসের কাজ। এটি কেবল ডিবিএ বা সিসাদমিনের জন্য উদ্বেগের বিষয় যা হার্ডওয়্যার তথ্যের প্রয়োজনটিকে সমর্থন করে। ভোক্তার অবশ্যই এই উদ্বেগগুলি সম্পর্কে সচেতন হওয়া উচিত নয়।

ক্লায়েন্টকে কীভাবে একটি রোসেট তৈরি করা হবে তা নিয়ে উদ্বিগ্ন হওয়া উচিত নয়। একটি বেস টেবিল, একটি ভিউ বা একটি ফাংশন সবই, এক্ষেত্রে একরকম। প্রতিটি সহজেই সারি এবং কলামগুলির একটি সেট উত্পাদন করে যা ক্লায়েন্ট গ্রাস করে। এমনকি একটি সাধারণ স্কেলারকে এক-সারি, এক-কলামের সারণী হিসাবে বিবেচনা করা যেতে পারে। সারি / কলাম মডেলটি ক্লায়েন্ট এবং সার্ভারের মধ্যে চুক্তি।

প্রত্নতাত্ত্বিকদের নামগুলি প্রয়োগের সাথে প্রিফিক্সিং করে উদ্বেগের এই পৃথকীকরণটি ভেঙে যায়। ক্লায়েন্ট এখন সচেতন এবং সার্ভারের ইন্টার্নালগুলির উপর নির্ভরশীল। সার্ভারের কোডিংয়ে পরিবর্তনের জন্য ক্লায়েন্টের পুনরায় কাজের প্রয়োজন হতে পারে।


8

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


SELECT
  bar
  , fizz
  , buzz
FROM dbo.foo

উপরের বিবৃতিতে আমি নামের কিছু থেকে তিনটি কলাম নির্বাচন করছি dbo.foo। উপসর্গকারীদের মূল অভিযোগগুলির মধ্যে একটি হ'ল তারা জানেন না যে তারা dbo.fooকোনও সারণী বা দৃষ্টিভঙ্গি কিনা । অবশ্যই এটি বিমূর্ততা হিসাবে দেখার দৃশ্যের একটি তবে আমি খনন করি। তারা বলেছে আমাদের এই বিষয়টির উপসর্গ করা উচিত dbo.tblFoo। এখন তারা দেখতে পাবে যে উপরের প্রশ্নে অবজেক্টটি একটি টেবিল (সম্ভবত)। তবে আমরা যদি সেই লক্ষটির কার্যকরী সমতুল্য লিখি তবে এটি দেখতে এটির মতো লাগবে।

SELECT
  bar
  , fizz
  , buzz
FROM dbo.Foo --table

আমি সন্দেহ করি যে মন্তব্যটি উপকারীদের চেয়ে কম দেখায় যদিও এটি প্রিফিক্সাররা কার্যকরভাবে তর্ক করছেন। অকেজো শব্দটি হাইলাইট করার জন্য এই মেটা ডেটা মন্তব্যটি আরও জটিল ক্যোয়ারী বিবেচনা করে।

SELECT
  qc.occurances
  , i.employeeId
  , q.questionText
FROM dbo.questionCount /*Indexed view*/ qc WITH (NOEXPAND)
  INNER JOIN dbo.interviewer /*partitioned view*/ i ON i.employeeId = qc.interviewerId
  INNER JOIN dbo.question /*table*/ q ON q.id = qc.questionId
WHERE
  EXISTS (
           SELECT 
             1 
           FROM dbo.currentEmployees /*view*/ ce 
             INNER JOIN dbo.questionsAsked /*table*/ qa ON qa.candidateId = ce.candidateId
           WHERE
             ce.employeeId = i.employeeId
             AND
             qa.questionId = q.id
         )
  AND
  qc.occurances > 5;

অতিরিক্ত মন্তব্যগুলি কি জিজ্ঞাসাটিকে যুক্তিযুক্ত করে তুলতে আরও সহজ করে বা তারা কেবল অতিরিক্ত শব্দ যোগ করে? আমার মতে তারা কেবল অতিরিক্ত শব্দ যোগ করে এবং শূন্য মান যুক্ত করে। এটাই বলতে চাইছে অ্যান্টি-প্রিফিক্সাররা। অধিকন্তু উপসর্গগুলি ব্যবহার করা প্রকৃতপক্ষে comments মন্তব্যের চেয়ে খারাপ কারণ কোনও মন্তব্য আপডেট করার ব্যয় একটি উপসর্গযুক্ত টেবিলের নাম আপডেট করার চেয়ে অনেক কম যদি আপনার ডেটা মডেলটি মানিয়ে নেওয়া প্রয়োজন। যেহেতু এই উপসর্গগুলির একটি ব্যয় হয় এবং এগুলি এড়ানো উচিত valuable

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


7

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

সাধারণ ধারণাটি হ'ল এই উপসর্গগুলি বহু আগে থেকেই কোডিং অনুশীলন (সম্ভবত নামকরণের সীমাবদ্ধতার কারণে, বস্তুর নামগুলির 8 বাইট সীমা হিসাবে), কোনও প্রাসঙ্গিক কারণ ছাড়াই প্রোগ্রামারদের প্রজন্মকে অতিক্রম করেছে, অন্যথায় এটি কেবল "উপায়" এটি সম্পন্ন হয়েছে "।

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

সময়ের সাথে সাথে জিনিসগুলি স্থায়ী হয়, এমনকি যদি সেগুলি মূলত ব্যবহার করা হত তবে এখন তা হ্রাস পেয়েছে। "টিবলিং" রিলেশনাল ডাটাবেস পরিচালনার ক্ষেত্রে এটির সর্বাধিক পরিচিত একটি উদাহরণ known

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


8
লাইনের কারণে আমি এই উত্তরটিকে অগ্রাহ্য করেছি, "তবে যদি এটি আপনাকে সেখানে থাকা ভাল বোধ করে তবে এগিয়ে যান এবং এটি ব্যবহার করুন।" এটি একটি কনভেনশন ব্যবহার করার একটি ভয়ঙ্কর কারণ।
jpmc26

@ jpmc26 আমি তা সত্ত্বেও এটি একটি কারণ হিসাবে সম্মত, এবং তিনি এটি ব্যবহার করতে নির্দ্বিধায়।
জন বেল

6
@ জনবেল, তবে আপনি এটির সুপারিশ না করতে পারেন ...
ড্যান 1111

@ ড্যান 1111 আমি প্রকৃতপক্ষে, এবং আমি আমার জবাবের সাধারণ সুরটি থেকে মনে করি, যে কোনও যুক্তিযুক্ত যুক্তিযুক্ত যার সাথে - আমি আশা করি যে তাদের যে কোনও প্রোগ্রামিং ভাষা ব্যবহার করা উচিত, এটি "টিবিএল_" বা "ব্যবহার করার প্রস্তাব দেওয়া হয়নি এটি অনুমান করতে সক্ষম হবে" _tbl "।
জন বেল

5

আমার পরামর্শটি হ'ল আপনি তাৎক্ষণিকভাবে এটি করা বন্ধ করুন। যদি এটি আপনাকে এগিয়ে যেতে অস্বস্তি করে তোলে তবে আপনার টেবিলের নামের শেষে "_tbl" যুক্ত করুন । অবশ্যই ইতিমধ্যে উল্লিখিত কারণগুলির জন্য, এটিও করার দরকার নেই। যে ব্যক্তি আপনাকে মূলত এটি করতে বলেছিল সে আপনাকে কিছু খারাপ পরামর্শ দিয়েছে। এটি খারাপ হতে পারে "এটি আমাদের সংস্থার খারাপভাবে সেট আপ করা সিস্টেমের পরামর্শের ভিত্তিতে বোঝা যায়" পরামর্শ, তবে সেই ক্ষেত্রে এটি ঠিক করা তাঁর কাজ ছিল। তবুও খারাপ পরামর্শ।


1
আমি নিশ্চিত নই যে 'আপনাকে অবশ্যই এটি তাত্ক্ষণিকভাবে বন্ধ করা উচিত, তবে আপনি এটি অন্য কোনও স্থানে চালিয়ে যেতে পারেন' কোনও ধারণা দেয়।
আন্ডারস্কোর_২

3

"আপনার টেবিলগুলি টিবিএল দিয়ে প্রিফিক্স করবেন না" কি আসলেই সমস্যা?

সিস্টেম সম্পর্কে? না? হতে পারে. আপনি লটসা বিদ্বেষ তৈরি করতে পারেন।

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


1

আমাকে বলতে হবে দয়া করে এটি করা বন্ধ করুন। এটি অতীতে ঘটেছিল, তবে এটি চালিয়ে যাওয়ার মাধ্যমে আপনি আপনার পরিবেশে আসা নতুন লোকদের এটি একটি স্থানীয় সম্মেলন ভাবা এবং চালিয়ে যেতে উত্সাহিত করেন। তবে তারা কেবল চালিয়ে যাবে না, তারা এটি কিছুটা ভিন্নভাবে করবে

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

একইভাবে vw_ বা sp_- এর সমস্ত কিছুর উপসর্গ তৈরি করে, কেউ আসবে এবং আপনি এসপি নাম, স্পেন নাম, এস_পি_নাম পাবেন। সমস্ত উপসর্গ সরিয়ে ফেলুন, সফ্টওয়্যারটি আইটেমটি কী তা জানে, যদি আপনার সত্যিকারের জানা দরকার তবে পরিবর্তে একটি প্রত্যয় ব্যবহার করুন। নামঅফমাইভিউ_ভি, নেমআফ মাইপ্রোক_এসপি। চাক্ষুষভাবে অনুসন্ধান করা অনেক সহজ

তবে আপনি যদি একটি দীর্ঘ সঞ্চিত প্রকল্পের মধ্যে দিয়ে ট্রলিং করছেন এবং সহজেই বলতে পারবেন না যে কোনও ভিউ কোনও প্রোক বা টেবিল কী? ভাল সম্ভাবনাগুলি হ'ল এগুলি যে কোনও উপায়েই দেওয়া হবে, এমনকি যদি প্রত্যয়টি আপনার উদ্ধারে আসে না

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


-3

আমার যদি উপসর্গ 'টিবিএল' থাকার সুবিধাটি মনে করতে হয় তবে এটি বর্তমান এসএসএমএসে, ইন্টেলিজেন্স সহ আমি কেবল টাইপ করতে পারি

select * from tbl

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

সম্পাদনা : (বহু ভোট নেওয়ার পরেও আমি এখনও মনে করি যে এসকিউএল সার্ভারে কোনও নির্দিষ্ট বিভাগের নির্দিষ্ট উপসর্গ দেওয়ার কিছু বিশেষ সুবিধাটি উল্লেখ করা সার্থক)। এটি মনে হয় যে কোনও সঞ্চিত প্রক্রিয়া / ফাংশন / দর্শনগুলির জন্য একটি উপসর্গ থাকার অভিযোগ করে না, তবে টেবিলগুলির সাথে এটি করার বিষয়ে সর্বদা যুক্তি রয়েছে। (আমার কাছে, সত্যিকারের বিশ্বে আমি টেবিলগুলিতে একটি উপসর্গ দিই বা না সে বিষয়ে আমি কম যত্ন নিতে পারি না)।

আমার স্মরণে আছে ২০০q সালের স্ক্যুয়াল সার্ভারে, টেবিলগুলি কী ব্যবহার করা হয় তা সন্ধানের জন্য প্রয়োজনীয় একটি সারণী নামগুলি সহ টেবিলের নামগুলি অন্তর্ভুক্ত ছিল, এটি নিয়মিত এক্সপ্রেশন / সি # এর সাথে এত সহজ কাজ ছিল। (হ্যাঁ, আমি জানি অন্য উপায়ও ছিল, এখানে কোনও যুক্তি নেই)।

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


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

আমার বলতে হবে "টিবিএল" উপসর্গটি ব্যবহার করার ফলে আমার চোখে এর বিশেষ লাভ আছে, হ্যাঁ, আপনি ইন্টেলিজেন্সটি ট্রিগার করতে স্কিমা টাইপ করতে পারেন, তবে আমার পরীক্ষার পরিবেশে যদি আমার স্কিমা হিসাবে কেবল আমার [ডিবিও] থাকে? আসলে, আমার নিজের প্রকল্পে, আমি প্রায়শই আন্ডারস্কোর "_" ব্যবহার করতে পছন্দ করি (তবে এটি তত্ত্বের ক্ষেত্রে "টিবিএল" এর মতো)। মুদ্রা হিসাবে সমস্ত কিছুর দুটি দিক রয়েছে যেমন কিছু লোক দীর্ঘ টেবিলের নাম পছন্দ করেন অন্যরা সংক্ষেপণ পছন্দ করেন। এই উপসর্গ প্রশ্নটি প্রচুর আকর্ষণীয় আলোচনা করে। আমার অভিমত যে যতক্ষণ আপনার যুক্তিটি বোঝায় ততক্ষণ এটি একটি ভাল যুক্তি।
jyao

6
আমি বিশ্বাস করি ডাউনভোটগুলি কেবল দেখায় যে এই যুক্তি তুলনামূলকভাবে দুর্বল। আপনি যদি তার উত্তরটিতে @ বিলিংক দ্বারা বর্ণিত দৃশ্যের মুখোমুখি হয়ে থাকেন তবে আপনি টেবিলের মতো একই উপসর্গের একটি দৃশ্য দিয়ে শেষ করবেন। এটি বিভ্রান্তিমূলক হবে এর পাশাপাশি, যেমনটি উল্লেখ করা হয়েছে, উপসর্গটি টাইপ করার সময় আপনি পরামর্শের তালিকায়ও সর্বদা সেই দৃষ্টিভঙ্গি পাবেন। আপনার যদি এমন অনেকগুলি মতামত প্রকাশিত হয়, আপনি যে সুবিধাটির কথা বলছেন তা আর আপনি এঁকে দিলে আর তেমন সুস্পষ্ট হবে না।
অ্যান্ড্রি এম

-3

dbo.Userবনাম বিবেচনা করুন dbo.tUser। এখন কল্পনা করুন যে আপনি এই টেবিলটি ব্যবহার করেছেন সে কোডের সমস্ত জায়গা সন্ধান করতে চান। কোন সংস্করণটি এটিকে সহজ করে তোলে (বা এমনকি সম্ভব?) "ব্যবহারকারী" শব্দটিতে মন্তব্যগুলি ইত্যাদিতে ভেরিয়েবলের নাম হিসাবে প্রচুর মিথ্যা ইতিবাচক সম্ভাবনা রয়েছে is

এটি এমন কিছু যা আমি অন্য উত্তরের কোনওটিতেও দেখিনি, তবে আমি একজন বিকাশকারী-কাম-ডিবিএ, সুতরাং অন্যদেরও লিগ্যাসি কোড নিয়ে কাজ করতে হয়নি, যেখানে অ্যাপ্লিকেশনগুলিতে কোয়েরিগুলি এম্বেড করা যেতে পারে এবং সবগুলিই নয় all অনুসন্ধানগুলি স্কিমা এবং সেই জাতীয় জিনিসগুলির সাথে রেফারেন্সগুলি সম্পূর্ণরূপে যোগ্য করে তোলে। (এমনকি যদি সবকিছু সম্পূর্ণরূপে যোগ্যতাসম্পন্ন হয়, তাহলে আপনি এটি প্রয়োজন dbo.Userএবং [dbo].[User]এবং dbo.[User]ইত্যাদি)। বা ডাটাবেস সংস্করণ যেখানে "নির্ভরতা তথ্য" বাসি হয়ে যায় এবং সঠিক নয় (যেমন এমএস-এসকিউএল এর পুরানো সংস্করণ)

সুতরাং, কিছু প্রকল্পে আমি কাজ করেছি, যেগুলি এর মতো মিশ্রিত হয়, আমি এটিকে আরও নির্বাচনী অনুসন্ধানের শব্দটি তৈরি করার জন্য একটি tবা vউপসর্গ (tbl_ মূর্খ হয়ে যায়) বাধ্যতামূলক করি ।

পরবর্তী প্রকল্পগুলিতে, এসকিউএল সার্ভার ডেটা সরঞ্জামগুলির মতো জিনিসগুলি (হ্যালো, সমস্ত রেফারেন্সগুলি সন্ধান করুন) এবং একটি ওআরএম স্তরের মাধ্যমে একচেটিয়াভাবে ডেটাবেস অ্যাক্সেসের কোনও কার্যকারিতা নেই, কারণ টেবিলের সমস্ত ব্যবহারগুলি তুচ্ছ (যেমন এটির নামকরণ করা হচ্ছে!) Is



-4

প্রতিটি পক্ষের এর সুবিধা এবং এর অসুবিধাগুলি রয়েছে। এটি ঠিক আপনার দলের বা সংস্থার নেতৃত্বের উপর নির্ভর করে অনুসরণের সম্মেলনগুলি স্থির করে নিন।

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

উপসর্গটি ব্যবহার না করার একমাত্র আসল সুবিধা হ'ল আন্তঃসম্পর্কযোগ্যতা। তবে আমি যুক্তি দিয়ে বলছি এটি একটি সম্ভাব্য বিপজ্জনক পরিস্থিতি। অবশ্যই, আপনার স্ক্রিপ্ট এবং কোয়েরিগুলি ভাঙবে না, তবে সম্ভবত আপনি সেই সত্যের উপর খুব বেশি নির্ভর শুরু করেন, যখন কিছু জিনিস কেবল দৃষ্টিভঙ্গি দিয়ে কাজ করে না বা খারাপ পরামর্শ দেয়।

শেষ পর্যন্ত এটি সত্যিই আপনার টিম কী পছন্দ করে এবং কীভাবে এটি কোড / স্ক্রিপ্টগুলি লিখতে পারে তা সম্পর্কে ফোটায়।


লোকেরা কেন একটি সৎ উত্তর অপছন্দ করে তা পান না। যদি আপনার দল এটি ব্যবহার করে তবে এটি ব্যবহার করুন কারণ আপনি কেবল আপনার সহকর্মীদের উপর রাগ করবেন, যদি না করেন তবে তা করবেন না। দুঃখিত যে উত্তরটি কত সহজ হতে পারে। আপনি যদি নিজের মতো করে কাজ করে থাকেন তবে কেবল নিজের মতো করে নিজের মত করে নিন pros শুধু জনতার কারণে জনতার কথা শুনবেন না।
কেভিন ভি

-12

আমার কাছে "tbl" দিয়ে টেবিলের নাম উপসর্গ করার কারণ ছিল। আপনি যদি ডাটাবেস অবজেক্টের একটি তালিকা খুঁজছেন, আপনি এই কোয়েরিটি চালাতে পারেন:

select * from sysobjects

আপনি যদি কেবল টেবিল পেতে চান তবে আপনি এটি করতে পারেন:

select * from sysobjects where type = 'U'

কে এটা মনে করতে পারে? যদি আপনার টেবিলের নামগুলি সমস্ত "tbl" দিয়ে শুরু হয়, আপনি এই ক্যোয়ারীটি ব্যবহার করতে পারেন যা আপনাকে টাইপ কলামের মানগুলি মুখস্ত করার প্রয়োজন হয় না:

select * from sysobjects where name like 'tbl%'

যেহেতু আপনি এসকিউএল সার্ভার 2014 ট্যাগ করেছেন, এটি আপনার ক্ষেত্রে প্রযোজ্য না কারণ এসকিউএল সার্ভার 2005 হিসাবে আপনি এর পরিবর্তে এটি করতে পারেন:

select * from sys.tables

আমি টেবিলের নামগুলির উপসর্গের অন্য কারণটি ভাবতে পারি না।


12
1) পুনরায়: " কে তা মনে রাখতে পারে? " মুখস্থ where type = 'U'করা এর চেয়ে আলাদা নয় where name like 'tbl%', বিশেষত আপনি কয়েকবার করার পরে। ২) সঠিক তথ্য থাকার স্বার্থে sys.tablesএসকিউএল সার্ভার ২০০৫ সালে উপলব্ধ ছিল: টেকনেট.মাইক্রোসফট / এসআর- ল্যাটান-
সলোমন রুটজকি

8
আপনি মনে রাখতে পারেন না 'U'তবে আপনি সর্বদা একটি দৃশ্য তৈরি করতে পারেন: তবে create view all_the_tables as select * from sysobjects where type = 'U';কেবল চালানselect * from all_the_tables;
ypercubeᵀᴹ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.