সম্প্রতি আমি গ্রাফকিউএল সম্পর্কে শিখেছি যা বিশ্রামের চেয়ে সেরা বলে দাবি করে। যাইহোক, আমি ভাবতে শুরু করি যে আমরা কেবল এইচটিপিএল অনুরোধের মধ্যে এসকিউএল বিবৃতি রাখি না।
উদাহরণস্বরূপ, গ্রাফকিউএলে আমি লিখতাম would
{
Movie(id: "cixos5gtq0ogi0126tvekxo27") {
id
title
actors {
name
}
}
}
যা এর এসকিউএল অংশের তুলনায় খুব সহজ নয়
SELECT id, title FROM movies WHERE id = cixos5gtq0ogi0126tvekxo27;
SELECT actors.name FROM actors, actors_movies WHERE actors.id == movies.actor_id AND movie.id == cixos5gtq0ogi0126tvekxo27;
হতে পারে আমরা কোয়েরিটি ইউআরএল-এনকোড করতে এবং সার্ভারে প্রেরণ করতে পারি
GET endpoint?q=SELECT%20id%2C%20title%20FROM%20movies%20WHERE%20id%20%3D%20cixos5gtq0ogi0126tvekxo27%3B%0ASELECT%20actors.name%20FROM%20actors%2C%20actors_movies%20WHERE%20actors.id%20%3D%3D%20movies.actor_id%20AND%20movie.id%20%3D%3D%20cixos5gtq0ogi0126tvekxo27%3B HTTP/1.1
হ্যাঁ, ক্যোয়ারী ইউআরএল খুব দীর্ঘ হতে পারে তবে আপনি যদি আরইএসটি কমপ্লায়েন্স না করে তবে এটি পোস্টের অনুরোধের শৃঙ্খলে রাখতে পারেন। (যাইহোক, আমি মনে করি এইচটিটিপি আরএফসিটি আরইএসটি-র জন্য সংশোধন করা দরকার অর্থে): ক্যোয়ারী স্ট্রিংয়ের দৈর্ঘ্যের ক্যাপিংটি স্পেসিফিকেশনের সাথে একেবারে শুরুতে বাস্তবায়নকে মিশ্রিত করে)
সরাসরি ক্লায়েন্ট থেকে এসকিউএল জারি করার সুবিধাও রয়েছে
- উন্নয়নের সময় হ্রাস করে গ্রাফকিউএল পার্স করার জন্য কোনও সার্ভার-সাইড কোড / লাইব্রেরির প্রয়োজন নেই।
- রানটাইম হ্রাস করে গ্রাফকিউএল পার্স করার জন্য কোনও সার্ভার-সাইড ওভারহেডের প্রয়োজন নেই।
- এসকিউএল স্টেটমেন্টগুলি গ্রাফকিউএল এর চেয়ে অনেক বেশি নমনীয় কারণ (বেশিরভাগ ক্ষেত্রে) পরে এসকিউএল হ্রাস পাবে।
- সবাই এসকিউএল জানে।
সুতরাং, গ্রাফকিউএল এর এসকিউএল এর সাথে কী কী সুবিধা রয়েছে?