অন্যটিতে কীভাবে অস্থায়ীভাবে ক্যোয়ারির ফলাফল সংরক্ষণ করবেন?


12

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

পটভূমি

  • আমি বাস ট্রানজিট লাইন অনুসন্ধানের জন্য এই অ্যাপ্লিকেশন তৈরি করছি।
  • বাস লাইনগুলি একটি 3 ডিজিটের নম্বর, এবং এটি অনন্য এবং কখনও পরিবর্তন হবে না।
  • প্রয়োজনীয়তাটি হ'ল স্টপ এ থেকে বি বি থামানোর জন্য লাইনগুলি সন্ধান করতে সক্ষম হওয়া প্রয়োজন
  • ব্যবহারকারীর ইন্টারফেসটি ইতিমধ্যে কেবল বৈধ স্টপ নাম ব্যবহার করার জন্য ইঙ্গিত দেওয়ার ক্ষেত্রে সফল।
  • প্রয়োজনীয়তাটি যদি কোনও রুটে সরাসরি লাইন থাকে তবে তা প্রদর্শনের জন্য সক্ষম হওয়া এবং যদি না হয় তবে একটি 2-লাইন এবং এমনকি 3-লাইন সংমিশ্রণটি প্রদর্শন করে।

উদাহরণ:

আমি পয়েন্ট এ থেকে পয়েন্ট ডি তে উঠতে হবে প্রোগ্রামটি দেখানো উচিত:

  • যদি সরাসরি লাইন AD থাকে।
  • যদি তা না হয় তবে ডিসি বিকল্প, 2 লাইন কম্বো, যেমন এসি, সিডি প্রদর্শন করুন।
  • যদি কোনও 2-লাইন কম্বোস না থাকে তবে 3-লাইনের কম্বোগুলি অনুসন্ধান করুন: এবি, বিসি, সিডি।

অবশ্যই, অ্যাপ্লিকেশনটির উচিত বাস লাইন নম্বর, সেইসাথে কখন বাসগুলি স্যুইচ করা উচিত display

আমি কি আছে:

আমার ডাটাবেসটি নিম্নরূপে কাঠামোযুক্ত করা হয়েছে (সরলীকৃত, প্রকৃত ডাটাবেসে স্থান এবং সময় এবং কী এবং কী নেই):

+-----------+
| bus_stops |
+----+------+
| id | name |
+----+------+

+-------------------------------+
|    lines_stops_relationship   |
+-------------+---------+-------+
|  bus_line   | stop_id | order |
+-------------+---------+-------+

যেখানে lines_stops_relationshipবাস লাইন এবং স্টপগুলির মধ্যে বহু-বহু সম্পর্কের বর্ণনা দিন।

অর্ডার, ক্রমটি নির্দেশ করে যাতে একক লাইনে থামে। সমস্ত লাইন পিছন পিছনে যায় না এবং অর্ডারটির অর্থ হয় (বিন্দু A সহ 2 বিন্দু বিন্দু 1 এর পরে অর্ডার 1 দিয়ে আসে)।

সমস্যাটি

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

TL; ড

এটিকে আবার ব্যবহার করতে সক্ষম হতে কীভাবে ফলাফলগুলি মনে আছে? আমি একটি একক ক্যোয়ারিতে এটি অর্জনের আশা করছি (প্রত্যেকের জন্য, 1-লাইন রুটের জন্য একটি প্রশ্ন, 2 এর জন্য একটি প্রশ্ন এবং 3-লাইন কম্বোসের জন্য একটি অনুসন্ধান)।

দ্রষ্টব্য: আমার কাছে যা আছে তার চেয়ে কেউ সম্পূর্ণ ভিন্ন পদ্ধতির পরামর্শ দিলে আমার আপত্তি নেই, আমি যে কোনও সমাধানের জন্য উন্মুক্ত।

একটি কুকি এবং একটি উত্সাহক্রমে কোনও সহায়তা পুরষ্কার দেবে। আগাম ধন্যবাদ!



@ ইজিগিয়াল: নোডগুলির সাথে আমার কোনও দূরত্ব নেই। এছাড়াও, আমি নেটওয়ার্কের অভ্যন্তরে চলাচলে সীমাবদ্ধ (যেমন কেবলমাত্র কয়েকটি নির্দিষ্ট লাইন পয়েন্ট এ থেকে পয়েন্ট বিতে সরে যায়)। এটি এখনও আমার জন্য দরকারী?
মাদারার ঘোস্ট

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

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

1
ইতিমধ্যে স্ট্যাক ওভারফ্লোতে রয়েছে বলে মনে হচ্ছে - এই লিঙ্কটির একাধিক সমাধান রয়েছে যদিও বর্তমানে কোনওটি মাইএসকিউএলে নেই। (বেশ কয়েকটি উত্তর রয়েছে যা সহজে সংক্ষিপ্ত করে না এবং লিঙ্ক পচা সম্ভবত কোনও সমস্যা নয় কারণ যদি সাইটটি এটির পরে চলে যায় তবে সম্ভবত এটিরও প্রচুর পরিমাণে উন্নতি রয়েছে)।
PSr

উত্তর:


3

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

আপনি যদি ইতিমধ্যে একটিকে না দেখে থাকেন তবে নিও 4 জে এর মতো কিছু দেখুন । এটির একটি REST এপিআই রয়েছে এবং আপনি এটির জন্য পিএইচপি ক্লায়েন্টগুলি খুঁজে পেতে পারেন ।

আপনি স্ট্যাক ওভারফ্লোয়ের এমন একগুচ্ছ লোককে খুঁজে পাবেন যারা জিনিসগুলির বাস্তবায়নের পক্ষে সহায়তা করতে পারে।


1
আমি বর্তমানে চিন্তাভাবনার পর্যায়ে আছি, আমি যে কোনও কিছু পরিবর্তন করতে পারি। আমি আপনার লিঙ্কগুলি পরীক্ষা করব। এছাড়াও, স্ট্যাক ওভারফ্লো থেকে এই প্রশ্নটি এসেছে , আমি জানি তারা এটির বাস্তবায়নে আমাকে সহায়তা করতে পারে :)
মাদারার ঘোস্ট

1
আমি পুনরাবৃত্ত অনুসন্ধানগুলির পরামর্শ দিতে যাচ্ছিলাম, তবে মনে হচ্ছে মাইএসকিউএল সেগুলি সমর্থন করে না তাই এই উত্তরটি আরও ভাল হতে পারে।
হতাশিত

@ ফ্রাস্ট্রেটড উইথফর্মস ডিজাইনার একটি খুব বিশ্রী মাইএসকিউএল সমাধান হতে পারে যা এসপি এবং একটি সংলগ্ন তালিকার সংমিশ্রণ করবে, তবে আমি এটি নিয়ে চিন্তা করা এমনকি সময়ের মূল্যবান বলে মনে করি না।
ইয়ানিস

@ ইয়ানিসরিজোস: এটি একটি ভাল কোড গল্ফ চ্যালেঞ্জ হতে পারে, সম্ভবত? ;)
হতাশ

1
@ ফ্রাস্ট্রেটেড উইথফোর্ডস ডিজাইনার নাহ, এটি একটি ভাল কোড গল্ফ চ্যালেঞ্জ
ইয়ানিস

0

আসুন একটি ব্যবহারকারী থেকে যেতে চায় বলে $start_idকরতে $end_id(উভয় বৈধ stop_id মান)। আপনি থেকে একটি বৈধ রুট খুঁজে এই প্রশ্নের ব্যবহার করতে পারেন $start_idথেকে $end_id:

  1. সরাসরি রুট অনুসন্ধান (একক লাইন):

    SELECT *
    FROM bus_stops bs1, bus_stops bs2
    WHERE bs1.stop_id=$start_id AND bs2.stop_id=$end_id AND bs1.bus_line=bs2.bus_line
  2. পূর্ববর্তী প্রশ্নের সাথে যদি কোনও ফলাফল না আসে তবে 2 লিগনেস ব্যবহার করে কোনও রুট অনুসন্ধান করুন:

    SELECT *
    FROM bus_stops bs1, bus_stops bs2, bus_stops bs3, bus_stops bs4
    WHERE bs1.stop_id=$start_id
        AND bs1.bus_line=bs2.bus_line
    AND bs2.stop_id=bs3.stop_id
        AND bs3.bus_line=bs4.bus_line
    AND bs4.stop_id=$end_id

*আপনার সত্যিকারের ক্ষেত্রগুলি পুনরুদ্ধার করতে পুনরায় প্রতিস্থাপন করুন ।


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

আপনি কেন একই ডাটাবেস থেকে টানা 4 বার নির্বাচন করছেন?
মাদারার ঘোস্ট

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