যে কেউ টিএসকিউএল এর কোডিং মানকে সুপারিশ করতে পারে?


9

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

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


1
পিনাল ডেভের সাইটে কোডিং মানগুলির একটি তালিকা রয়েছে । তারা মানদণ্ডের সেটগুলির ন্যায্য ভিত্তির মতো দেখতে।
উইল এ


1
@ স্কট যা কেবল সনাক্তকরণকে কভার করে; নামকরণ, কার্সার ব্যবহার / সঞ্চিত পদ্ধতি / ডেটাটাইপের পছন্দ বা কোড যা আসলে কোডের গুণমানকে প্রভাবিত করে এমন কিছুই সম্পর্কে ...
রওল্যাণ্ড শ

1
ঠিক তাই, কেন আমি বললাম এটি "সম্পর্কিত", একটি "সদৃশ" নয়।
স্কট হুইটলক

উত্তর:


6

আমার অভিজ্ঞতায় আমি যে জিনিসগুলি সন্ধান করব তা হ'ল:

  • সারণী এবং কলামের নামকরণ - আপনি আইডি, রেফারেন্স বা আইডি টাইপ কলামগুলির জন্য নম্বর, একক বা নামগুলির জন্য বহুবচন ব্যবহার করছেন কিনা তা দেখুন (টেবিলের নামগুলির জন্য বহুবচনগুলি সাধারণ - যেমন THINGS, কলামের নামগুলির জন্য একক - যেমন THING_ID)। আমার জন্য এখানে সর্বাধিক গুরুত্বপূর্ণ বিষয়গুলি হল ধারাবাহিকতা যা লোকদের সময় নষ্ট করে না এড়ানো (উদাহরণস্বরূপ আপনি টাইপগুলিতে দৌড়েন না যেখানে কেউ একটি জিনিসকে টেবিলের নাম হিসাবে রাখে কারণ আপনি কেবল স্বজ্ঞাতই জানেন যে টেবিলের নামগুলি কখনই একক নয়)।

  • সমস্ত তৈরিতে তাদের ফলের অংশ হিসাবে একটি ড্রপ (বিদ্যমান বস্তুর শর্তযুক্ত) অন্তর্ভুক্ত করা উচিত। আপনি নিজের অনুদানের অনুমতিও অন্তর্ভুক্ত করতে চাইতে পারেন।

  • নির্বাচন, আপডেট, সন্নিবেশ এবং মুছে ফেলার জন্য একটি কলামের নাম, একটি টেবিলের নাম এবং একটি যেখানে লাইন প্রতি ধারা অনুসারে ধারা / আদেশ দেওয়া উচিত যাতে সেগুলি ডিবাগিংয়ের সময় একবারে সহজেই মন্তব্য করতে পারে।

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

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

  • এসকিউএল সার্ভারের পূর্ববর্তী সংস্করণগুলির মধ্যে অবজেক্টগুলির মালিকানার জন্য স্ট্যান্ডার্ড বা স্কিমার এটি 2005 এবং তার পরে থাকা উচিত। এটি আপনার কলটি তবে এটি কখনই অনুমান করা উচিত নয় যে কার কি মালিক / কোথায় এটি থাকে) এবং যেখানে স্কিমার / মালিককে এটি তৈরি হতে পারে তার ভুল সম্ভাবনা হ্রাস করার জন্য তৈরি স্ক্রিপ্টগুলিতে অন্তর্ভুক্ত করা উচিত।

  • একটি ইন্ডিকেটর যে নির্বাচন করুন * যে কেউ নিজের প্রস্রাবের একটি পিন্ট পান করার জন্য তৈরি করা হবে।

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

আমি নিশ্চিত যে আমি কিছু মিস করেছি তবে আমার জন্য তারা হ'ল প্রকৃত সুবিধার্থে প্রকৃত সুবিধা দেয় number

তবে সমস্ত মান হিসাবে, কম বেশি হয়। আপনার কোডিং মানগুলি যত দীর্ঘ হবে, লোকেদের সেগুলি পড়তে এবং তাদের ব্যবহার করার সম্ভাবনা কম। একবার আপনি দু'টি ভাল জায়গাগুলির পৃষ্ঠাগুলি পেরিয়ে গেলে এমন জিনিসগুলি ফেলে দেওয়ার সন্ধান শুরু করে যা সত্যিকারের বিশ্বে বাস্তবে কোনও ব্যবহারিক পার্থক্য তৈরি করে না কারণ আপনি এটির কিছু করার সম্ভাবনা হ্রাস করছেন।

সম্পাদনা করুন: দুটি সংশোধন - মালিকানা বিভাগে স্কিমা সহ, গণনা (*) সম্পর্কে একটি ভ্রান্ত টিপ সরিয়ে - নীচে মন্তব্যগুলি দেখুন।


1
কিছু অদ্ভুত পছন্দ ... "নির্বাচন COUNT (*)" খারাপ? কখনও স্কিমার কথা শুনেছেন (যা মালিকের মতো নয়)? আপনার অন্যরা যদিও ভাল আছেন
gbn

1
@ জন হপকিন্স - আমি জানি কেন এটি নির্বাচন * ব্যবহার করা খারাপ। এটি দুর্দান্ত যদি আপনি বলতে পারেন কেন নির্বাচন করুন (*) ব্যবহার করা খারাপ।
k25

1
@gbn @ k25 - কয়েক বছর আগে (2002?) আমার একটি ডিবিএ ছিল যারা গণনায় খুব গরম ছিল (*) তবে আপনার প্রশ্নের জবাবে গুগলিং মনে হচ্ছে এটি এখন পুরানো (যদি এটি কখনও সত্য হয়)। sqlservercentral.com/articles/Performance+Tuning/adviceoncount/… (নিবন্ধকরণ প্রয়োজন)। তিনি মূলত একটি ওরাকল ডিবিএ ছিলেন তাই এটি সেখানে একটি আসল সমস্যা হতে পারে যা তিনি ধরে নিয়েছিলেন এসকিউএল অপটিমাইজারের জন্য এটিও একটি সমস্যা।
জন হপকিন্স

1
@gbn - হ্যাঁ আমার আছে, যদিও তারা চালু হওয়ার পরে আমি তুলনামূলকভাবে হাতছাড়া হয়েছি তাই আমার স্বয়ংক্রিয় প্রতিক্রিয়া ব্যবহারকারীরা ছিলেন। আমি স্কিমার কভার উত্তর আপডেট করব।
জন হপকিন্স

1
@ জিবিএন, @ কে 25 - আরও বেশি খনন করা হচ্ছে (*)। স্পষ্টতই এটি ওরাকল 7 এবং এর আগের ইস্যুতে 8 ই এবং তার বাইরেও স্থির ছিল। এটি এসকিউএল সার্ভারে কখনও সমস্যা ছিল কিনা তা পরিষ্কার নয় তবে অবশ্যই এটি আর নেই। আমার ডিবিএ পুরানো ছিল মনে হবে।
জন হপকিন্স

3

ভাল লিখিত এসকিউএল নির্ধারণ করে তার জন্য conক্যমত্যে কোনও সংস্থান আছে বলে মনে হয় না

কারণ conক্যমত্য নেই। উদাহরণ হিসাবে, জন হপকিন্সের তালিকার অন্তত অর্ধেক আইটেমের জন্য আমার বিভিন্ন উত্তর থাকবে এবং তার তালিকার বিশদ পরিমাণের উপর ভিত্তি করে, এটি একটি নিরাপদ অনুমান যে আমরা দুজনেই জীবিকার জন্য ডাটাবেসের সাথে কাজ করি।

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


1
+1 টি। আমি মনে করি সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হ'ল আপনি নিজের দলের মধ্যে ধারাবাহিকতা পেয়েছেন।
ডিন হার্ডিং

1
আগ্রহের বাইরে আপনি অন্যভাবে কি করবেন? এগুলি কি মূলত স্বাদের বিষয় (লেআউট ইত্যাদি) বা কোনও "হার্ড" ত্রুটি রয়েছে?
জন হপকিন্স

1
@ জোন: কোনও হার্ড ত্রুটি নেই, একক টেবিলের নাম, ট্রিগারগুলির ঘৃণা ইত্যাদির মতো কেবল বিষয়গত জিনিস B
ল্যারি কোলম্যান

1
ন্যায্য উদাহরণ (এবং আমি এটি উপস্থিতি ব্যবহার করে এবং নিজেকে প্রস্রাব পান করতে বাধ্য করি না)
জন হপকিন্স

1

জন হপকিন্স এর উত্তর ছাড়াও ...

  • অভ্যন্তরীণ বনাম বাহ্যিক বস্তু পৃথক করুন

    • সীমাবদ্ধতা এবং সূচিপত্র ইত্যাদির জন্য আইএক্স, ইউকিউ, টিআরজি, সিকে ইত্যাদি
    • লোয়ার কেস বা ক্লায়েন্টের মুখোমুখি ক্যাপসকেস যেমন ইউএসপিথিং_এড
  • অভ্যন্তরীণ অবজেক্টের জন্য, "ডিফল্ট না থাকলে" তাদের সুস্পষ্ট করুন

    • ইউকিউ = অনন্য সীমাবদ্ধতা
    • ইউকিউসি = অনন্য ক্লাস্টারযুক্ত প্রতিবন্ধকতা
    • পিকে = প্রাথমিক কী
    • পিকেএন = অবিবাহিত প্রাথমিক কী
    • আইএক্স = সূচক
    • আইএক্সইউ = অনন্য সূচক
    • আইএক্সসি = ক্লাস্টার্ড সূচক
    • IXCU বা IXUC = অনন্য ক্লাস্টারড সূচক
  • নামকরণ + অনুমতিগুলি সহজ করার জন্য স্কিমার ব্যবহার করুন। উদাহরণ:

    • অভ্যন্তরীণ প্রকল্পগুলির জন্য সহায়ক.এক্সএক্সএক্সএক্স
    • Udfs এর জন্য হেল্পারফএন.এক্সএক্সএক্স
    • কিছু ফেসিং কোডের জন্য ওয়েবজিইউআই.এক্সএক্সএক্সএক্স
    • টেবিলের জন্য ডেটা এবং / অথবা ইতিহাস এবং / অথবা মঞ্চায়ন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.