পোস্টগ্রিসএসকিউএল নামকরণের সম্মেলন


191

PostgreSQL নামকরণ কনভেনশন সম্পর্কে আমি কোথায় বিশদ ম্যানুয়াল পাই? (টেবিলের নাম বনাম উটের ক্ষেত্রে, ক্রমগুলি, প্রাথমিক কীগুলি, সীমাবদ্ধতাগুলি, সূচিপত্রগুলি ইত্যাদি ...)


আচ্ছা, আমরা যদি একটু আরো যেতে এবং জেনেরিক নামকরণ convension মধ্যে সন্ধান করব আমি অত্যন্ত এই উত্তর চেক সুপারিশ stackoverflow.com/questions/4702728/...
vyegorov

উত্তর:


249

সারণীর নাম, কেস ইত্যাদি সম্পর্কিত প্রচলিত সম্মেলনটি হ'ল:

  • এসকিউএল কীওয়ার্ড: UPPER CASE
  • নাম (সনাক্তকারী): lower_case_with_underscores

উদাহরণস্বরূপ :

UPDATE my_table SET name = 5;

এটি পাথরে লেখা নেই, তবে ছোট ক্ষেত্রে সনাক্তকারীদের সম্পর্কে বিটটি সুপারিশ করা হয়, আইএমও। পোস্টগ্র্যাস্কল শনাক্তকারীদের কেসকে সংবেদনশীলতার সাথে বিবেচনা করে যখন উদ্ধৃতি না দেওয়া হয় (এটি প্রকৃতপক্ষে অভ্যন্তরীণভাবে তাদের ছোট করে রাখবে), এবং উদ্ধৃত করার সময় সংবেদনশীলভাবে কেস; অনেকে এই কৌতূহল সম্পর্কে সচেতন নন। সর্বদা ছোট হাতের ব্যবহার করে আপনি নিরাপদ। যাইহোক, এটি গ্রহণযোগ্য camelCaseবা PascalCase(বা UPPER_CASE), যতক্ষণ আপনি সুসংগত হয়: হয় হয় শনাক্তকারীদের সর্বদা বা কখনও না (এবং এর মধ্যে স্কিমা তৈরি অন্তর্ভুক্ত রয়েছে!)।

আমি আরও অনেক কনভেনশন বা স্টাইল গাইড সম্পর্কে অবগত নই। সারোগেট কীগুলি সাধারণত একটি সিকোয়েন্স থেকে তৈরি করা হয় (সাধারণত serialম্যাক্রো সহ), আপনি যদি হাত দ্বারা তৈরি করেন তবে এই সিকোয়েন্সগুলির জন্য সেই নামকরণের সাথে লেগে থাকা সুবিধাজনক হবে tablename_colname_seq

আরও দেখুন কিছু আলোচনা এখানে , এখানে এবং (সাধারণ এসকিউএল জন্য) এখানে বিভিন্ন সংশ্লিষ্ট লিঙ্ক সহ, সব।

দ্রষ্টব্য: Postgresql 10 সিরিয়ালেরidentity জন্য এসকিউএল-কমপ্লায়েন্ট রিপ্লেসমেন্ট হিসাবে কলামগুলি চালু করেছে ।


3
এফডব্লিউআইডাব্লু, একমাত্র আইডিসিএনক্রসিটি হ'ল পিজি ভাঁজগুলি লোয়ার কেটে যায়, যেখানে এসকিউএল স্ট্যান্ডার্ড বলে যে এটি আপার ক্ষেত্রে ফোল্ড হওয়া উচিত। যে ডিবিএমএসগুলি ভাঁজ কেটে ফেলতে ব্যর্থ হয় তারা হ'ল অদ্ভুত মানহীন।
ক্রেগ রিঞ্জার

6
পোস্টগ্রিসের নতুন ব্যবহারকারী হিসাবে এটি বেশ হতাশাব্যঞ্জক। সমস্ত সময় কোট টাইপ করার সময় বা কুৎসিত নামকরণ কনভেনশন সাফল্য ব্যবহার করে বেছে নেওয়া। এটা পাছা স্তন্যপান।
d512

1
@ ব্যবহারকারী 1334007 কনভেনশনটি কুৎসিত নয় - এবং উপরে ক্রেগের মন্তব্য পড়ুন। এবং আপনি টেবিলগুলি তৈরি করার সময় উদ্ধৃতি না দিলে উদ্ধৃতি দেওয়ার দরকার নেই (এটি যদি আপনি সামঞ্জস্যপূর্ণ হন)।
30:48

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

11
আমি উচ্চতর ক্ষেত্রে কীওয়ার্ডগুলি ঘৃণা করি, এটি কেবল ঘৃণা করি, সম্মেলন বা না। কীওয়ার্ড সম্পর্কিত কোনও ক্ষেত্রে নির্ভরশীলতা নেই। আমি সব ছোট ক্ষেত্রে পছন্দ করি হ্যাঁ, আমি জানি এটি নিছক পছন্দ, তবে এটি একটি নিছক মন্তব্য। ;-)
ক্রেগ

28

সত্যই কোনও আনুষ্ঠানিক ম্যানুয়াল নেই, কারণ কোনও একক স্টাইল বা মান নেই।

এতক্ষণ আপনি সনাক্তকারী নামকরণের নিয়মগুলি বুঝতে পারলে আপনি যা খুশি তা ব্যবহার করতে পারেন।

অনুশীলনে, আমি এটি ব্যবহার করা সহজ lower_case_underscore_separated_identifiersবলে মনে করি কারণ "Double Quote"কেস, স্পেসস ইত্যাদি সংরক্ষণের জন্য সর্বত্র তাদের প্রয়োজন হয় না

আপনি যদি নিজের টেবিলগুলি এবং ফাংশনগুলির নাম রাখতে "@MyAṕṕ! ""betty"" Shard$42"চান তবে আপনি তা করতে নির্দ্বিধায় থাকবেন, যদিও সর্বত্র এটি টাইপ করতে ব্যথা হবে।

মূল বিষয়গুলি বুঝতে হবে:

  • ডাবল-কোট না করা হলে শনাক্তকারীরা লোয়ার-কেস-এ ভাঁজ করা হয়, তাই MyTable, MYTABLEএবং mytableসমস্ত একই জিনিস, তবে "MYTABLE"এবং "MyTable"পৃথক;

  • ডাবল কোট না করা:

    এসকিউএল শনাক্তকারী এবং মূল শব্দের অবশ্যই একটি অক্ষর দিয়ে শুরু করা উচিত (এজেড, তবে ডায়াক্রিটিকাল চিহ্ন এবং ল্যাটিন-অক্ষর সহ বর্ণগুলি) বা আন্ডারস্কোর (_)। সনাক্তকারী বা মূল শব্দের পরবর্তী অক্ষরগুলি বর্ণগুলি, আন্ডারস্কোরগুলি, অঙ্কগুলি (0-9), বা ডলার চিহ্ন (signs) হতে পারে।

  • আপনি কীওয়ার্ডগুলিকে সনাক্তকারী হিসাবে ব্যবহার করতে চাইলে আপনাকে অবশ্যই দ্বিগুণ-উদ্ধৃতি দিতে হবে।

অনুশীলনে আমি দৃ strongly়ভাবে প্রস্তাব দিচ্ছি যে আপনি কীওয়ার্ড সনাক্তকারী হিসাবে ব্যবহার করবেন না । অন্তত সংরক্ষিত শব্দ এড়িয়ে চলুন। আপনি কেবল কোনও টেবিলের নাম রাখতে পারেন তার অর্থ এই নয় যে আপনার উচিত।"with"


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

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