ইভেন্ট / ক্রিয়াকলাপের ডেটার জন্য রিলেশনাল ডাটাবেস বনাম JSON অবজেক্ট ব্যবহার করা


28

আমি এমন একটি প্রকল্পে কাজ করছি যেখানে আমি কোনও স্ট্যান্ডার্ড এসকিউএল রিলেশনাল ডাটাবেস বা কোনও ইভেন্ট বা ক্রিয়াকলাপ সম্পর্কে ডেটা সঞ্চয় করতে JSON অবজেক্ট ব্যবহার করার মধ্যে সিদ্ধান্ত নেওয়ার চেষ্টা করছি।

প্রকল্পটি একাধিক ইভেন্টের ধরণের ডেটা সঞ্চয় করবে তাই আমি এই প্রশ্নের জন্য কেবল একটি ইভেন্টের ধরণ বর্ণনা করার সিদ্ধান্ত নিয়েছি।

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

ব্যবহারকারীরা সহজ ("x 'নাম দিয়ে আমাকে ইভেন্টগুলি সন্ধান করুন") এবং জটিল ("আমার বর্তমান থেকে' জেড 'এর ব্যাসার্ধের মধ্যে' এক্স 'সংগীত জেনার এবং' y 'ব্যয়ের সাথে আমার ইভেন্টগুলি সন্ধান করে ব্যবহারকারীরা ডেটা অনুসন্ধান করবে) অবস্থান ") জিজ্ঞাসা। ব্যবহারকারীরা ওয়েব ফর্ম ব্যবহার করে ডেটা জমা দেবেন।

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

আমার প্রয়োজন অনুসারে প্রতিটি পদ্ধতির উপকারিতা এবং বুদ্ধি সম্পর্কে যে কোনও ধারণার প্রশংসা করব। আপনার যদি কিছু পরিষ্কার করার প্রয়োজন হয় তবে নির্দ্বিধায় জিজ্ঞাসা করুন।

{
    "event": {
        "eventID":{
            "type":"string"
        },  
        "eventType":{
            "type":"array",
            "eventTypeItem":{
                "type":"string"
            }
        },
        "eventName":{
            "type":"string"
        },      
        "eventDescription":{
            "type":"string"
        },
        "eventVenueList":{
            "type":"array",
            "eventVenueListID":{
                "type":"integer"
            }
        },
        "eventURL":{
            "type":"string"
        },
        "eventTwitter":{
            "type":"string"
        },
        "eventFB":{
            "type":"string"
        },
        "eventInstagram":{
            "type":"string"
        },
        "eventEmail":{
            "type":"string",
            "format":"email"
        },
        "eventContactPerson":{
            "type":"string"
        },
        "eventDoorTime": {
            "type":"string",
            "format":"date-time"
        },  
        "eventPerformerIDList":{
            "type":"array",
            "liveMusicPerformerID":{
                "type":"integer"
            }
        },  
        "eventSetList":{
            "type":"array",
            "eventPerformerID":{
                "type":"integer"
            },
            "eventPerformerStartTime":{
                "type":"string",
                "format":"date-time"
            },
            "eventPerformerEndTime":{
                "type":"string",
                "format":"date-time"
            }                                   
        },
        "eventDateList": {
            "type":"array",
            "eventDateItem": {
                "type":"string",
                "format":"date-time"
            }   
        },
        "eventDateStartTime": {
            "type":"string",
            "format":"date-time"
        },
        "eventDateEndTime": {
            "type":"string",
            "format":"date-time"
        },
        "eventTicket":{ 
            "type":"array",
            "eventTicketType":{
                "type":"string" 
            },
            "eventTicketLowPrice":{
                "type":"number"
            },
            "eventTicketHighPrice":{
                "type":"number" 
            },
            "eventDatesAdvancePrice": {
                "type":"number"
            }   
        }
    },  
    "performer": {
        "performerID": {
            "type":"integer"
        },
        "performerType": {
            "type":"string"
        },
        "performerName": {
            "type":"string"
        },
        "performerAlternateName": {
            "type":"array",
            "performerAlterateNameItem":{
                "type":"string"
            }
        },
        "performerGenreList": {
            "type":"array",
            "performerGenreItem":{
                "type":"string"
            }
        },
        "performerURL": {
            "type":"string"
        }                                       
    }
}   

আমি সাইটের প্রয়োজনীয়তাগুলি জানি না, তবে আমি অনুসন্ধান করতে চাই: পারফর্মার, স্থানগুলি এবং সম্ভবত তারিখগুলি। তারা অ্যারে টাইপ করা হয়েছে যেহেতু এটি কি সমস্যা হবে?
জেফো

প্রাসঙ্গিক অ্যারেতে মানগুলি অনুসন্ধান করার জন্য আপনি কী আপনার ক্যোয়ারীটি প্রোগ্রাম করতে পারবেন না?
zgall1

13
জেএসএন কোনও স্টোরেজ ফর্ম্যাট নয়। সত্য, আপনি স্টাফের টেক্সট ফাইলগুলি ব্যবহার করে ডেটা সঞ্চয় করতে পারবেন তবে কেবলমাত্র পরিস্থিতিগুলির মধ্যে সবচেয়ে সহজ। রিলেশনাল ডাটাবেসের চেয়ে জেএসএন "নতুন" হওয়া আপনার সিদ্ধান্তের সাথে কোনও প্রাসঙ্গিকতা রাখে না।
রবার্ট হার্ভে

1
আমি বুঝতে পারি এটি কোনও স্টোরেজ ফর্ম্যাট নয়। আমি বোঝাতে চাইছিলাম যে আমি জেএসওএন ফর্ম্যাটিংয়ের সাথে ডেটা সঞ্চয় করতে মঙ্গোডিবি বা পোস্টগ্রির জেএসএন অবজেক্টটি ব্যবহার করতে পারি।
zgall1

2
@RobertHarvey এবং ভোটারদের মধ্যে আজকাল (2017) তাদেরকে JSON হয় একটি দোকান বিন্যাস : দেখুন পোস্টগ্রি 9.6+ ... বেসিক ~ 2012, পেশাদার যেহেতু এবং যেহেতু চূড়ান্ত 2015 (JSONb ডাটাটাইপ) পরিপক্ক।
পিটার ক্রাউস

উত্তর:


45

আমি মনে করি আপনার প্রশ্নটি সত্যিই এটিকে ফুটে উঠেছে : কখন আমি কোনও নোএসকিউএল পদ্ধতির বনাম আরডিবিএমএস ব্যবহার করব? আপনি খুব শীঘ্রই জেএসএনে স্থির হয়েছিলেন (একটি নোএসকিউএল-ইশ সিদ্ধান্ত), সম্ভবত আপনি এজাক্স গ্রাহক পেয়েছেন বলে।

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

অবশ্যই, এই সাধারণ দিকনির্দেশগুলিও দৃ are় নয়। গুগল গুগল ফাইল সিস্টেম বিকশিত করার কারণ , ম্যাপ্রেডিউস (ইয়াহুতে হ্যাডোপ তৈরির জন্য ডগ কাটিং দ্বারা ব্যবহৃত কাজ) এবং পরবর্তীকালে বিগকুয়েরি (একটি নোএসকিউএলমুখী [স্কিমহীন] বৃহত আকারের ডেটা পরিচালনার উপায়) যথাযথ কারণ হ'ল তাদের প্রচুর অ্যাডহক ছিল বিআই অনুরোধ জানায় এবং তারা পরিচালনা করার চেষ্টা করছে তারা / তেঁত / পেটা / এক্সা / জেটা / ইয়ত্তা স্কেল পর্যন্ত স্কেল করার জন্য তারা আপেক্ষিক পন্থাগুলি পেতে পারে না। আরডিবিএমএস সরবরাহ করে এমন কিছু অ্যাড-হক-কোয়েরি ব্যবহারকারী বন্ধুত্বের ত্যাগ এবং এক সাধারণ অ্যালগরিদম (ম্যাপ্রেইডুস) প্রতিস্থাপনের একমাত্র ব্যবহারিক পদ্ধতির ছিল যা কোনও প্রদত্ত প্রশ্নের জন্য মোটামুটি সহজেই কোডড হতে পারে।

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

'পরামর্শের জন্য ধনী ব্যক্তিদের কাছে যাবেন না, কারণ তারা না এবং হ্যাঁ উভয়ই বলবে।' - ফ্রোডো


"আমাদের পেশাটি ইঞ্জিনিয়ারিং ভিত্তিক হওয়ার কথা, ফ্যাশনমুখী নয়, তাই আমাদের প্রবৃত্তিটি হওয়া উচিত ..." সেরা সমাধান যা কাজ করে? ;)
বিঙ্ক

5

আমি বিশ্বাস করি এখানে আরও বিবেচনা রয়েছে যা আপনি খুঁজছেন না। এখানে দুটি বিস্তৃত উদ্বেগ রয়েছে:

  • সংগ্রহস্থল
  • অনুসন্ধান এবং পুনরুদ্ধার

সংগ্রহস্থল

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

অনুসন্ধান করুন

যদি আপনি ব্যবহারযোগ্য যে কোনও ধরণের অনুসন্ধান সরবরাহ করতে চান, তবে আমি দৃ strongly়ভাবে পরামর্শ দিচ্ছি যে আপনি নিজের অনুসন্ধানগুলি সম্পাদন করতে SOLR এর মতো একটি উত্সর্গীকৃত পাঠ্য অনুসন্ধান ইঞ্জিন ব্যবহার করুন । পাঠ্য অনুসন্ধানগুলি ধীর এবং আপনার যদি একাধিক শার্ড থাকে তবে আরও বেশি ধীর। এসএলআর ভারী অনুসন্ধান প্যারাম, অবস্থান ভিত্তিক অনুসন্ধান এবং আরও অনেক কিছু সহ জ্বলজ্বল পাঠ্য অনুসন্ধানগুলিকে সমর্থন করে। SOLR তবে আপনার ডেটার প্রাথমিক স্টোর হিসাবে উপযুক্ত নয়। এর অর্থ এই নয় যে ইভেন্টগুলি যুক্ত করার সময় বা আপডেট করার সময় আপনাকে দ্বৈত সন্নিবেশের জন্য প্রক্রিয়া তৈরি করতে হবে এবং আপনার প্রাথমিক ডাটাবেস এবং আপনার এসএলআর স্তর উভয়কে আপডেট করতে হবে। এছাড়াও আপনাকে কোনও পুরানো / সমাপ্ত ইভেন্টগুলি সরিয়ে SOLR পরে আপডেট রাখতে হবে updated

যদিও এটি অতিরিক্ত কাজের মতো মনে হচ্ছে আপনি পরে কোনও সম্পূর্ণ পাঠ্য অনুসন্ধান ইঞ্জিন ব্যবহার করার দূরদর্শিতার জন্য নিজেকে ধন্যবাদ জানাতে পারেন। NoSql ডাটাবেস বা আরডিবিএমএস এর কোনওই এসএলআর / লুসিনের কর্মক্ষমতা এবং তত্পরতার কাছে আসে না।


3

প্রথমত, আপনি যদি কোনও স্টোরেজে জেএসএন ডেটা সঞ্চয় করার চেষ্টা করছেন তবে কোনও এসএসকিউল ডাটাবেস না, আমি অবশ্যই আপনাকে জেএসএন ব্যবহার করতে নিরুৎসাহিত করব। কারণটি হ'ল যদি আপনি আপনার ডেটা কোনও জেএসওএন ফাইল হিসাবে সঞ্চয় করেন, উদাহরণস্বরূপ, তবে এটি খুলতে, পার্স করা, এর মাধ্যমে লুপ করা ইত্যাদি খুব ধীর হবে etc.

তাই বলা হয় শুরু, আমি আপনার প্রশ্নের সংকীর্ণ পারেন: অনুকূল এবং কনস কি কি NoSQL এবং RDBMS ? এটি ইতিমধ্যে হাজার বার 'নেট'র জবাব দেওয়া হয়েছে।

আপনার প্রকল্পের Regrading, আপনি অবশ্যই ব্যবহার উভয় ক্ষেত্রেই এর করতে NoSQL বা RDBMS ; তবে আমি আপনাকে সাধারণভাবে যা সুপারিশ করতে পারি তা হ'ল বাক্সের বাইরে চিন্তাভাবনা করা এবং অপেক্ষাকৃত কম দৃশ্যমান কারণগুলির জন্য সন্ধান করা যা আপনাকে দুটি বিকল্পের মধ্যে সিদ্ধান্ত নিতে সহায়তা করতে পারে। কোন বিকল্পটি উন্নতি করতে পারে তা দেখার চেষ্টা করবেন? যা অন্য দলের সদস্যদের জন্য আরও উপযুক্ত - যদি আপনি একমাত্র বিকাশকারী না হন। আপনি যদি এটি বিক্রি করছেন তবে কোনটি সস্তা, সহজ এবং আপনার অ বিকাশকারী গ্রাহকদের জন্য সাধারণত উপযুক্ত?

এইভাবে আপনি শেষ পর্যন্ত কোন পথে যাবেন তা সিদ্ধান্ত নিতে পারেন, অন্যথায় প্রদত্ত তথ্যের উপর ভিত্তি করে সিদ্ধান্ত নেওয়া সত্যিই কঠিন হবে কারণ উভয় বিকল্পই বেশ ভালভাবে ফিট করতে পারে।


2

বেশিরভাগ অ্যাপ্লিকেশনগুলিতে প্রয়োজনীয়তা রয়েছে

  1. ইনপুট ডেটা, কিছু প্রক্রিয়াকরণ সম্পাদন করুন, ডেটা সংরক্ষণ করুন, ডেটা পুনরুদ্ধার করুন এবং ডেটাটি জিজ্ঞাসা করুন। ডেটাতে প্রতিবেদন উত্পন্ন করার প্রয়োজনও থাকতে পারে।
  2. সিস্টেমের বিভিন্ন অংশের মধ্যে বা বাহ্যিক সিস্টেমের সাথে ডেটা বিনিময় করুন

আইটেম 1 এর জন্য প্রয়োজনীয়তা অর্জনের জন্য ক্রমাগত ডেটা ব্যবহারের একটি পদ্ধতি প্রয়োজন। সাধারণত যদি ডেটার পরিমাণ খুব ছোট হয় এবং ডেটা প্রকারের সহজ হয় এবং এর জন্য ব্যাপক অনুসন্ধানের দক্ষতার প্রয়োজন না হয় তবে একটি সাধারণ ফাইল কাঠামো ব্যবহার করা যেতে পারে। ডেটা আরও জটিল হয়ে যাওয়ার সাথে সাথে ফাইলগুলিতে সঞ্চিত ডেটার সাথে একটি এক্সএমএল (বা এমনকি জেএসওএন) কাঠামো ব্যবহার করা যেতে পারে। অনুসন্ধান করা যদিও আরও সমস্যাযুক্ত হয়ে ওঠে। ডেটাগুলির পরিমাণ বৃদ্ধি এবং অনুসন্ধানগুলির জটিলতা বৃদ্ধির সাথে সাথে একটি ডাটাবেস নির্বাচন করা হয় যা তথ্য অধ্যবসায়, অনুসন্ধান ইত্যাদির জন্য শিল্পের মানক পদ্ধতিগুলি সরবরাহ করে etc. ।

আইটেম 2 এর প্রয়োজনীয়তা অর্জনের জন্য এক্সএমএল, জেএসএন ইত্যাদি সহ সিস্টেমের মধ্যে ডেটা আদান প্রদানের অনুমতি দেওয়ার জন্য বিভিন্ন বিভিন্ন পদ্ধতি রয়েছে are

এই পদ্ধতিগুলি ব্যবহারকারীর দ্বারা ডেটা স্ট্রাকচারকে সংজ্ঞায়িত করার অনুমতি দেয় এবং ভাষা স্বাধীন হয় যা ভিন্ন ভিন্ন সিস্টেমকে ডেটা বিনিময় করতে দেয়।

আপনার নির্দিষ্ট ক্ষেত্রে আপনি সঠিকভাবে জেএসএন ব্যবহার করছেন সঙ্গীত ইভেন্টগুলির একটি সেট বর্ণনা করছেন। আপনি যখন JSON ফর্ম্যাটে ডেটা সঞ্চয় করতে পারেন তখন এই সংগীত ইভেন্টগুলির সংখ্যা হ্রাস এবং অকার্যকর হওয়ায় এই ডেটা অনুসন্ধান করে।

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

জেএসএন পদ্ধতির অতিরিক্ত সমস্যা হ'ল পরিবর্তিত ডেটা স্ট্রাকচার। বর্তমানে আপনার কাঠামো তুলনামূলকভাবে সহজ। আপনি এই কাঠামোটি কয়েক মাস ব্যবহার করতে পারেন এবং তারপরে একটি অতিরিক্ত ক্ষেত্র চিহ্নিত করা যায়। তারপরে আপনি আপনার বিদ্যমান সমস্ত JSON অবজেক্টের সাথে কী করবেন? এগুলি আপডেট করা সমস্যাযুক্ত হবে।

আপনি যদি কোনও ডাটাবেস ব্যবহার করেন তবে অতিরিক্ত ক্ষেত্র যুক্ত করা তুলনামূলকভাবে সহজ এবং JSON উত্পন্ন করার জন্য আপনার কোডটি একক স্থানে পরিবর্তন করতে হবে সুতরাং আপনাকে নতুন ক্ষেত্রের সাথে সমস্ত নতুন JSON দেবে।

সংক্ষেপে প্রযুক্তির প্রতিটি টুকরোগুলি এটি ডেটা ইন্টারচেঞ্জের জন্য জেএসওএন এবং ডেটা অধ্যবসায়ের জন্য একটি ডেটাবেসগুলির জন্য ডিজাইন করা হয়েছিল।


0

আপনার মনে হওয়া প্রশ্নগুলির কারণে আপনার এই ডেটা সংরক্ষণ করার জন্য এসকিউএল এর চেয়ে নোএসকিউএল ব্যবহার করার ক্ষেত্রে আপনার আরও ভাল সাফল্য হবে বলে আমি মনে করি।

কিছু তথ্য বিশুদ্ধরূপে সম্পর্কিত হওয়ার কারণে আর কিছু নয়, এটি অবশ্যই কিছু আরডিবিএমএস (এসকিউএল) বজায় রাখতে হবে। আইএমও সম্পর্কিত সম্পর্কিত ডেটা গ্রাফ ডাটাবেসে আরও ভাল অনুবাদ করবে।

অবশ্যই আপনি এসকিউএল-এ কোয়েরিগুলিও লিখতে পারেন তবে আপনার যে সংখ্যক যোগদানের প্রয়োজন হবে তার কারণে পারফরম্যান্সটি ভয়ানক হয়ে উঠবে (আপনার ডেটা কিছুটা স্বাভাবিক করা হবে এবং এগুলি সবই একটি ইভেন্টের টেবিলের মধ্যে নয়)।

তবে উপসংহারে আপনি নোএসকিউএল ব্যবহার করে আরও স্বাধীনতা অর্জন করতে পারবেন (এইভাবে জেএসএন বা ডাটাবেস দ্বারা সমর্থিত অন্য কোনও ফর্ম্যাট) বিবেচনা করে আপনি ইতিমধ্যে জেদী থাকা ডেটা গ্রহণ না করে ভবিষ্যতে আপনার স্কিমা পরিবর্তন করতে পারবেন।

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


0

আমি মনে করি আপনার উভয়টি ব্যবহার করা উচিত এবং আমি এটিকে 'বনাম' সিদ্ধান্ত হিসাবে দেখছি না।

একটি রিলেশনাল ডাটাবেস দ্রুত এবং দক্ষ স্টোরেজ এবং সম্পর্কিত বৈশিষ্ট্যযুক্ত ডেটা পুনরুদ্ধারের জন্য অর্থবোধ করে।

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

সুতরাং আমি ডেটা স্টোরেজের জন্য এসকিউএল এবং ডেটা ট্রান্সপোর্ট ফর্ম্যাটের জন্য জেএসওনকে সুপারিশ করব।

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


যদি আমি কোয়েরিতে নোএসকিউএল কী-মান স্টোরেজ পদ্ধতিটি কীভাবে ব্যবহার করতে হয় তার ভাল বোঝার একটি প্রোগ্রামার যদি সন্ধান করতে পারি, তবে আপনি কী বলবেন যে ডেটা স্টোরেজ ফর্ম্যাট হিসাবে JSON ব্যবহার করে পরাস্ত করা সবচেয়ে গুরুত্বপূর্ণ চ্যালেঞ্জ?
zgall1

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