হাতের লিখিত কোডে এসকিউএল সার্ভারের ব্র্যাকেট স্বরলিপিটি ব্যবহার করা কি বোধগম্য?


15

কোড জেনারেটরগুলি []প্রায় প্রতিটি কিছুর জন্য নতুন মাইক্রোসফ্ট বন্ধনীর স্বরলিপি ( ) ব্যবহার করে আউটপুট উত্পন্ন করার সময় সহজ হতে থাকে ।

আমি যখন এটি প্রথম দেখলাম, যদিও আমি কিছুটা নিষিদ্ধ উদ্ধৃত শনাক্তকারী স্বরলিপিটির পুনঃজন্ম চাই।

আমি যতদূর জানি এটি মাইক্রোসফ্টের মালিকানাধীন এক্সটেনশন (যার অর্থ ওরাকল এটি সমর্থন করে না)।

এসকিউএল সার্ভারের দিকে তাকানো কোনও সারণির মতো আপনি সংজ্ঞা দিলে কোনও পার্থক্য নেই

CREATE TABLE [dbo].[Table_2] ([col1] [int], [col2] [int]);

অথবা

CREATE TABLE dbo.Table_2 (col1 int, col2 int);

এটি ব্যক্তিগত বা কর্পোরেট শৈলীর বিষয়। ধারাবাহিক থাকো.

এখন আপনি যদি নিজের ডাটাবেসটিকে ওরাকলে স্থানান্তর করতে চান তবে বন্ধনীগুলি কোনও বিকল্প নয়।

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

উত্সাহিত কোড থেকে সমস্ত বন্ধনী সরিয়ে ফেলা, বেশিরভাগ ডিবিএমএস বুঝতে পারে এমনভাবে নাম এবং কেবল কোডের জন্য ফাঁকা, অন্যান্য বিশেষ অক্ষর এবং সংরক্ষিত কীওয়ার্ড ব্যবহার করা এড়ানো ভাল ধারণা?

উত্তর:


12

স্ট্যান্ডার্ড এসকিউএল "উদ্ধৃত শনাক্তকারীদের জন্য ডাবল উদ্ধৃতি ব্যবহার করে । এসকিউএল সার্ভার QUOTED_IDENTIFIERঅপশনটি ( ANSI_QUOTESমাইএসকিউএল) ব্যবহার করে এটি সমর্থন করে । স্ট্যান্ডার্ড এসকিউএল সাধারণভাবে বহনযোগ্যতা উন্নত করে এবং এক্ষেত্রে ওরাকলকে পোর্ট করে। একইভাবে আমি এসকিউএল কীওয়ার্ডগুলি আপার কেস (ইন্টারমিডিয়েট এসকিউএল -২৯ প্রয়োজনীয়তা) এ পরিবর্তন করতে এবং প্রসারিত intকরতে INTEGER(প্রবেশের স্তরের এসকিউএল -২২ প্রয়োজনীয়তা)।

আইএমও, অগত্যা উদ্ধৃত শনাক্তকারীদের ব্যবহার করা, যা কিছু স্বাদই এড়ানো উচিত।


10

এটি একটি বিষয়গত সমস্যা, তবে অযৌক্তিক বন্ধনী আমার পোষা প্রাণিদের তালিকার শীর্ষের নিকটে - ভুল বানান "! =" এর চেয়ে কিছুটা বিরক্তিকর, তবে কলাম তালিকার শীর্ষস্থানীয় কমা হিসাবে খারাপ নয়।

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


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

9
  • যদি আপনার টেবিল বা কলামের নামগুলি বন্ধনী প্রয়োজন হয়:

    স্পষ্টতই, যদি আপনার স্কিমা নিয়ন্ত্রণ থাকে তবে এই জাতীয় নাম ব্যবহার করা এড়িয়ে চলুন। তবে কিছু ক্ষেত্রে সর্বাধিক নামটি সংরক্ষিত নাম ( KEYজেনেরিক কী-মান সারণীর মূল কলামের মতো ) তাই আপনি এটি কীভাবে খারাপভাবে ব্যবহার করতে চান তা সিদ্ধান্ত নিতে হবে (এবং সর্বত্র এটি উদ্ধৃত করতে হবে)।

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

  • গতিশীলভাবে এসকিউএল তৈরি করার সময় অবশ্যই বন্ধনী ব্যবহার করুন। এটি করার সহজ উপায় হ'ল QUOTENAME()আপনি যে বস্তুগুলিকে গতিশীলভাবে উল্লেখ করছেন (তার উদাহরণস্বরূপ SELECT QUOTENAME(name) FROM sys.databases;) কল করা। sp_MSforeachdbউদাহরণস্বরূপ, এটি করবেন না


6

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


6

আমি সম্ভবত পোর্টেবল ডিডিএল করার চেষ্টাও করব না। আমি যদি প্রয়োজন হয়, এসকিউএল সার্ভারের সিস্টেম ভিউয়ের বাইরে ওরাকল টেবিল সংজ্ঞা উত্পন্ন করি তবে আমি আরও ভাল হতে পারি।

আমি মনে করি না যে পোর্টেবল ডিএমএল লেখার দ্বারা এটি বোধগম্য হয়েছে - পিএল / এসকিউএল টি-এসকিউএল থেকে সম্পূর্ণ আলাদা। বহনযোগ্যতার জন্য, সঞ্চিত পদ্ধতির একটি API এর মাধ্যমে আপনার ডাটাবেসটি প্রকাশ করা সহজ। উভয় প্ল্যাটফর্মে এই পদ্ধতির স্বাক্ষরগুলি অবশ্যই একই হতে হবে, তবে বাস্তবায়নগুলি মালিকানা বৈশিষ্ট্যগুলি ব্যবহার করতে পারে - সামগ্রিকভাবে এটি কেবল এএনএসআই স্ট্যান্ডার্ড এসকিউএল ব্যবহার করার চেষ্টা করার চেয়ে অনেক সহজ।

এই উপসংহারটি ওরাকল এবং এসকিউএল সার্ভার উভয় ক্ষেত্রেই পোর্টেবল সিস্টেম বিকাশের বেশ কয়েক বছরের অভিজ্ঞতার ভিত্তিতে তৈরি।

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