মাইএসকিউএলে জেএসএন হিসাবে ডেটা সংরক্ষণ করা


121

আমি ভেবেছিলাম এটি করা একটি n00b জিনিস। এবং, তাই, আমি এটি কখনও করিনি। তারপরে আমি দেখেছি যে ফ্রেন্ডফিড এটি করেছে এবং প্রকৃতপক্ষে তাদের ডিবি স্কেলকে আরও ভাল করেছে এবং ল্যাটেন্সি হ্রাস করেছে। আমি কৌতুহল করছি যদি আমার এটি করা উচিত। এবং যদি তা হয় তবে এটি করার সঠিক উপায় কী?

মূলত, মাইএসকিউএল-তে সমস্ত কিছুর ডিবি হিসাবে কাউচডিবি সাজানো যায় তা শেখার জন্য ভাল জায়গাটি কী? JSON হিসাবে সবকিছু সংরক্ষণ করা মনে হচ্ছে এটি সহজ এবং দ্রুত হবে (বানাতে হবে না, কম বিলম্ব হবে না)।

এছাড়াও, ডিবিতে জেএসওএন হিসাবে সঞ্চিত জিনিসগুলি সম্পাদনা করা, মুছে ফেলা ইত্যাদি কি সহজ?


অবগতির জন্য, আমার বিশ্বাস এই মাইএসকিউএল মধ্যে তাদেরকে JSON ব্যবহার করে FriendFeed এর আলোচনা হল: backchannel.org/blog/friendfeed-schemaless-mysql
dimo414

10
মাইএসকিউএল 5.7 এখন একটি নেটিভ জেএসওএন ডেটাস্টোর সমর্থন করে।
eecue

উত্তর:


57

কাউচডিবি এবং মাইএসকিউএল দুটি খুব আলাদা জন্তু। কাউছডিবিতে স্টোর সংরক্ষণের আদি উপায় জেএসএন the মাইএসকিউএল-তে, আপনি সবচেয়ে ভাল যা করতে পারেন তা হল একক ক্ষেত্রে পাঠ্য হিসাবে জেএসওএন ডেটা সঞ্চয় করা store এটি কোনও আরডিবিএমএসে সঞ্চয় করার উদ্দেশ্যকে পুরোপুরি পরাভূত করবে এবং প্রতিটি ডাটাবেস লেনদেনকে ব্যাপকভাবে জটিল করে তুলবে।

না।

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


3
হ্যাঁ, আমি মঙ্গোকে দেখছি, এবং পিএইচপি এর জন্য একটি এক্সটেনশন রয়েছে এবং ডিবি লেনদেনের জন্য প্রকৃত বাক্য গঠন মাইএসকিউএল থেকে সহজ বলে মনে হচ্ছে এবং এটির সাথে সামগ্রিকভাবে কাজ করা যে কাউচডিবিটিকে আরও সহজ বলে মনে হচ্ছে। ধন্যবাদ, আমি মনে করি আমি মোঙ্গোডিবি এর সাথে যাব :)
অস্কার গডসন

67
একটি আরডিবিএমএসে জেএসএন ব্লব সংরক্ষণ করার জন্য অবশ্যই বৈধ মামলা রয়েছে। আপনি যদি কিছু পরিস্থিতিতে দৃশ্যে প্রায়শই ঘটে থাকে সেই তথ্যটি অনুসন্ধানের প্রয়োজনের সাথে JSON ডেটার অস্বচ্ছ ব্লবগুলি সংরক্ষণ এবং পুনরুদ্ধার করতে চান তবে আপনি এটি খুব ভালভাবে করতে পারেন।
মার্কাস

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

1
আপনি যদি নিজের অ্যাপ্লিকেশনের জন্য আরডিবিএমএস এবং ডকুমেন্ট টাইপের স্টোরেজ উভয়ই রাখতে চান তবে এটি একটি ভাল পদ্ধতির যাতে আপনার একাধিক ডাটাবেস পরিচালনা করতে না চান।
রজারমস্ট্রং

5
এটি বেশ সংক্ষিপ্ত-পরামর্শের পরামর্শ, সম্ভবত স্ট্যাক এক্সচেঞ্জের জন্য যে খুব বেশি সময় ব্যয় করে এমন কোনও ব্যক্তি দ্বারা? আমি যখন 100 টি ক্ষেত্র সংরক্ষণ করতে চাই তার সাথে আমার একটি রেকর্ড থাকে এবং আমার কেবল 3 বা 4 টি ক্ষেত্র অনুসন্ধান করতে হয়, 100 ক্ষেত্রের সাথে একটি সারণী তৈরি করা অযৌক্তিক। আপনি জেএসএনে 1 ফিল্ডে সঞ্চিত তাঁর পুরো ঠিকানা পুস্তক সহ গ্রাহক রেকর্ড রাখতে পারেন এবং রেকর্ড অনুসন্ধানের জন্য গ্রাহক আইডি, শেষ নাম, সংস্থাটিকে অন্যান্য ক্ষেত্র হিসাবে যুক্ত করতে পারেন। এটা একটা. বিশাল সময় সাশ্রয়কারী
ড্যানিয়েল

102

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

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

আপনার যে ডেটা অ্যাক্সেস করতে হবে তা খুব সহজেই JSON হিসাবে সঞ্চিত হয় উদাহরণস্বরূপ একটি বেসিক প্রতি কেস চালান সিস্টেম। তারা আরডিবিএমএস থেকে মোটেই খুব বেশি উপকৃত হয় না, এবং আপনার যদি সঠিক HTML ফর্ম কাঠামো থাকে তবে কেবল json_encoding (P _ পোষ্ট ['entires']) দ্বারা জেএসনে সংরক্ষণ করা যেতে পারে।

আমি মঙ্গোডিবি ব্যবহার করে আপনি খুশি বলে আমি আনন্দিত এবং আমি আশা করি যে এটি আপনার ভালভাবে চালিয়ে যেতে পারে তবে মনে করবেন না যে মাইএসকিউএল সর্বদা আপনার রাডার বন্ধ হয়ে চলেছে, কারণ আপনার অ্যাপ্লিকেশন জটিলতায় বৃদ্ধি পাওয়ায় আপনি সম্ভবত একটি আরডিবিএমএসের প্রয়োজন হবে may কিছু কার্যকারিতা এবং বৈশিষ্ট্য (এমনকি এটি কেবল সংরক্ষণাগারভিত্তিক ডেটা বা ব্যবসায়িক প্রতিবেদনের জন্য অবসর নেওয়ার জন্য হলেও)


8
-১ এর জন্য "পিএইচপি-র মাধ্যমে কোনও রিলেশনাল ডিবিতে জেএসএন কোড সংরক্ষণ করা ভাল" - একক ক্ষেত্রে জেএসএন সংরক্ষণ করে (যা কোনও অ-পারমাণবিক ডেটা হিসাবে একটি সম্পূর্ণ সত্তাকে উপস্থাপন করতে পারে) আপেক্ষিক মডেল লঙ্ঘন করে এবং 1NF প্রতিরোধ করে। এছাড়াও, আপনাকে ব্যাক আপ নেওয়ার জন্য মেট্রিক্স ছাড়াই পারফরম্যান্স সম্পর্কে দুর্দান্ত দাবি করবেন না।
সেজে জেরার্ড

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

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

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

6
এটি আমার অভিজ্ঞতা থেকে সেরা উত্তর ছিল। আপনি আরডিবিএমএস ব্যবহার করতে পারেন তবে জেসনকে কেবল নির্দিষ্ট পরিস্থিতিতে সংরক্ষণ করতে পারেন যদি আপনি জানেন যে আপনি কী করছেন। প্রকৃতপক্ষে আমি এটি ব্যবহার করেছি অ্যারে ডেটা অস্থায়ী ক্যাশে সঞ্চয় করার জন্য এবং এমন কিছু পরিস্থিতিতে যেখানে আপনি একটি দ্রুত ফলাফল এবং কম কোড অর্জন করেন। বাস্তবে অনেক প্রকল্পের কিছু মিশ্র বৈশিষ্ট্য রয়েছে।
হেরোসেলহিম

72

মাইএসকিউএল 5.7 এখন মঙ্গোডিবি এবং অন্যান্য স্কিমহীন ডকুমেন্ট ডেটা স্টোরের মতো একটি নেটিভ জেএসওএন ডেটা টাইপ সমর্থন করে:

JSON সমর্থন

মাইএসকিউএল 5.7.8 দিয়ে শুরু করে, মাইএসকিউএল একটি নেটিভ জেএসওএন প্রকার সমর্থন করে। JSON মানগুলি স্ট্রিং হিসাবে সংরক্ষণ করা হয় না, পরিবর্তে একটি অভ্যন্তরীণ বাইনারি ফর্ম্যাট ব্যবহার করে যা দস্তাবেজের উপাদানগুলিতে দ্রুত পড়ার অ্যাক্সেসের অনুমতি দেয়। জাসন কলামগুলিতে সঞ্চিত জেএসওএন নথিগুলি যখনই inোকানো বা আপডেট করা হয় তখন কোনও অকার্যকর নথি ত্রুটি তৈরি করে তা স্বয়ংক্রিয়ভাবে বৈধ হয়ে যায়। জেএসওএন ডকুমেন্টগুলি তৈরির ক্ষেত্রে সাধারণ করা হয় এবং বেশিরভাগ তুলনা অপারেটর যেমন =, <, <=,>,> =, <>,! =, এবং <=> ব্যবহার করে তুলনা করা যায়; JSON মানগুলির তুলনা করার সময় মাইএসকিউএল অনুসরণকারী সমর্থিত অপারেটরগুলির সাথে অগ্রাধিকার এবং অন্যান্য নিয়ম সম্পর্কে তথ্যের জন্য, JSON মানগুলির তুলনা এবং ক্রম দেখুন।

মাইএসকিউএল ৫.7.৮ জেএসওএন মানগুলির সাথে কাজ করার জন্য বেশ কয়েকটি ফাংশন প্রবর্তন করে। এই ফাংশনগুলির মধ্যে এখানে তালিকাবদ্ধগুলি অন্তর্ভুক্ত রয়েছে:

  1. ফাংশন যা JSON মান তৈরি করে: JSON_ARRAY (), JSON_MERGE (), এবং JSON_OBJECT () ( বিভাগ 12.16.2, "JSON মান তৈরি করে এমন ফাংশন" দেখুন।
  2. JSON মানগুলি অনুসন্ধান করে এমন ফাংশনগুলি: JSON_CONTAINS (), JSON_CONTAINS_PATH (), JSON_EXTRACT (), JSON_KEYS (), এবং JSON_SEARCH ()। বিভাগ 12.16.3, "JSON মানগুলিতে অনুসন্ধান করে এমন ফাংশন" দেখুন।
  3. JSON মানগুলিকে সংশোধন করে এমন ক্রিয়াকলাপগুলি: JSON_APPEND (), JSON_ARRAY_APPEND (), JSON_ARRAY_INSERT (), JSON_INSERT (), JSON_QUOTE (), JSON_REMOVE (), JSON_REPLACE (), JSON_SET (JSON_SET)। বিভাগ 12.16.4, "JSON মানগুলিকে সংশোধনকারী ফাংশন" দেখুন।
  4. JSON মান সম্পর্কে তথ্য সরবরাহ করে এমন ফাংশনগুলি: JSON_DEPTH (), JSON_LENGTH (), JSON_TYPE (), এবং JSON_VALID ()। বিভাগ 12.16.5, "ফাংশনগুলি যা জেএসওএন মান বৈশিষ্ট্যগুলি ফিরিয়ে দেয়" দেখুন।

মাইএসকিউএল ৫.7.৯ এবং তারপরে, আপনি JSON_EXTRACT (কলাম, পাথ) এর শর্টহ্যান্ড হিসাবে কলাম-> পথ ব্যবহার করতে পারেন। এটি যেখানে কলামের শনাক্তকারী যেখানে WHERE, অর্ডার দ্বারা এবং গ্রুপের অধীনে একটি এসকিউএল বিবৃতিতে ঘটতে পারে সেখানে কোনও কলামের জন্য একটি উলাম হিসাবে কাজ করে। এর মধ্যে রয়েছে নির্বাচন, আপডেট, মোছা, তৈরি টেবিল এবং অন্যান্য এসকিউএল বিবৃতি। বাম পাশের অংশটি অবশ্যই একটি JSON কলাম শনাক্তকারী (এবং একটি উপাধি নয়) হওয়া উচিত। ডান হাতটি একটি উদ্ধৃত জেএসওএন পাথ এক্সপ্রেশন যা কলাম মান হিসাবে প্রত্যাবর্তিত জেএসএন নথির বিরুদ্ধে মূল্যায়ন করা হয়।

-> এবং জেএসএন_আরেক্টরাট () সম্পর্কে আরও তথ্যের জন্য বিভাগ 12.16.3, "জেএসএন মূল্যবোধগুলি সন্ধান করে এমন ফাংশন" দেখুন। মাইএসকিউএল ৫.7 এ জেএসএন পাথ সমর্থন সম্পর্কে তথ্যের জন্য, জেএসওএন মানগুলি অনুসন্ধান এবং সংশোধন করা দেখুন। মাধ্যমিক সূচি এবং ভার্চুয়াল উত্পন্ন কলামগুলিও দেখুন।

অধিক তথ্য:

https://dev.mysql.com/doc/refman/5.7/en/json.html


26

স্টোরেজে নামার সময় জসন অক্ষরগুলি বিশেষ কিছু নয়, যেমন চরগুলি

{, }, [, ], ', a-z, 0-9.... সত্যিই বিশেষ কিছু এবং পাঠ্য হিসেবে সংরক্ষণ করা যেতে পারে।

আপনার প্রথম সমস্যাটি হ'ল এটি

{প্রোফাইল_আইডি: 22, ব্যবহারকারীর নাম: 'রবার্ট', পাসওয়ার্ড: 'skhgeeht893htgn34ythg9er'}

আপনার নিজের প্রক্রিয়াটি না থাকলে এবং মাইএসকিএলের জন্য একটি জন্ডোডকোড তৈরি না করা হলে ডাটাবেসে সঞ্চিত আপডেট করা সহজ নয়

UPDATE users SET JSON(user_data,'username') = 'New User';

সুতরাং আপনি যেমন করতে পারবেন না যে আপনাকে প্রথমে জাসনটি নির্বাচন করতে হবে, এটি ডিকোড করতে হবে, এটি পরিবর্তন করতে হবে, আপডেট করতে হবে, সুতরাং তত্ত্ব অনুসারে আপনি একটি উপযুক্ত ডাটাবেস কাঠামো তৈরি করতে আরও সময় ব্যয় করতে পারেন!

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


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

@shasikanth, যদি আপনি JSON তথ্য মান করছি অনুসন্ধানের তারপর আমি আরো ভালো পদ্ধতির জন্য দেখাবে
কারবি

15

কোয়েরি ব্যবহার করে জেএসএন ডেটা পাওয়া কতটা কঠিন তা চিত্রিত করার জন্য, আমি এটি পরিচালনা করার জন্য তৈরি করা ক্যোয়ারীটি ভাগ করব।

এটি অ্যারে বা অন্যান্য অবজেক্টগুলিকে গ্রহণ করে না, কেবলমাত্র মৌলিক ডেটাটাইপগুলি। আপনার কলামের 4 টি দৃষ্টান্তটি JSON সংরক্ষণ করে কলামের নামে পরিবর্তন করা উচিত এবং মাইফিল্ডের 4 টি উদাহরণকে JSON ক্ষেত্রে পরিবর্তন করতে হবে যা আপনি অ্যাক্সেস করতে চান change

SELECT
    SUBSTRING(
        REPLACE(REPLACE(REPLACE(column, '{', ''), '}', ','), '"', ''),
        LOCATE(
            CONCAT('myfield', ':'),
            REPLACE(REPLACE(REPLACE(column, '{', ''), '}', ','), '"', '')
        ) + CHAR_LENGTH(CONCAT('myfield', ':')),
        LOCATE(
            ',',
            SUBSTRING(
                REPLACE(REPLACE(REPLACE(column, '{', ''), '}', ','), '"', ''),
                LOCATE(
                    CONCAT('myfield', ':'),
                    REPLACE(REPLACE(REPLACE(column, '{', ''), '}', ','), '"', '')
                ) + CHAR_LENGTH(CONCAT('myfield', ':'))
            )
        ) - 1
    )
    AS myfield
FROM mytable WHERE id = '3435'

5
আপনি এই সার্ভারটি আর জিজ্ঞাসা করবেন না। এটি একটি ব্লব সংরক্ষণ এবং এটি ক্লায়েন্ট পাশ ফিরে পেতে হবে। তারপরে আপনি এটি অনুসন্ধান করতে কেবল জেএস ব্যবহার করবেন। এটি অনেক দিন আগে ছিল :) আমি তখন থেকে এই স্টাফটির জন্য মঙ্গোডিবিতে চলে এসেছি :) এই চমত্কার কুশল জিজ্ঞাসার জন্য আপভোট করুন।
অস্কার গডসন

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

10

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

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


2
আমার চিন্তা ঠিক. এর ডেটা যদি কখনও যোগ হয় না বা অনুসন্ধান করা হয় বা খুব কম আপডেট হয় তবে কেন কোনও পাঠ্য ক্ষেত্রে জেসন ব্যবহার করবেন না। এর একটি ভাল উদাহরণ হ'ল ফুডিটেম টেবিল যেখানে প্রতিটি খাদ্য আইটেমের পুষ্টির তথ্য সংরক্ষণ করা দরকার। পরিবেশন আকার, প্রোটিন, কার্বস, ফ্যাট টোটাল, ফ্যাট স্যাট ইত্যাদি। তবে কেবল এটিই নয়, আপনার মান (0.2) এবং এটির ইউনিটটি (জি, ওজ, ফ্ল ওজ, মিলি) পরিমাপ করা হবে l এটি ডেটা বিবেচনা করে (আপনারা যা অনুমান করছেন তার উপর নির্ভর করে) অনুসন্ধান করার দরকার নেই আমি বলব 1 টি পাঠ্য বনাম 16 ইনট / বার্চার / এনাম কলামগুলি ভাল বাণিজ্য off
ব্র্যাড মুর

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

9

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

প্রথমত, আরডিবিএমএসে জেএসএন সংরক্ষণ করার ক্ষেত্রে আরও ভাল সমর্থন রয়েছে। আপনি PostgreSQL এ স্যুইচিং বিবেচনা করতে পারেন (যদিও মাইএসকিউএল জেএসওএনকে v5.7.7 থেকে সমর্থন করেছে) since পোস্টগ্রিএসকিউএল মাইএসকিউএল হিসাবে খুব অনুরূপ এসকিউএল কমান্ড ব্যবহার করে তারা আরও ফাংশন সমর্থন করে। তাদের যুক্ত করা ফাংশনগুলির মধ্যে একটি হ'ল তারা জেএসওএন ডেটা প্রকার সরবরাহ করে এবং আপনি এখন সঞ্চিত জেএসওএনকে জিজ্ঞাসা করতে সক্ষম হন। ( এই সম্পর্কে কিছু রেফারেন্স ) আপনি যদি সরাসরি আপনার প্রোগ্রামটিতে ক্যোয়ারীটি তৈরি না করে থাকেন, উদাহরণস্বরূপ, পিএইচপিতে পিডিও ব্যবহার করতে বা লারাভেলে স্বতন্ত্র, আপনাকে যা করতে হবে তা কেবল আপনার সার্ভারে পোস্টগ্রাইএসকিউএল ইনস্টল করা এবং ডাটাবেস সংযোগ সেটিংস পরিবর্তন করা settings এমনকি আপনার কোড পরিবর্তন করার দরকার নেই।

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

উদাহরণস্বরূপ, কোনও ব্লগ পোস্টের ট্যাগ সংরক্ষণের জন্য, সাধারণত আপনার ব্লগ পোস্টের জন্য একটি টেবিল, ট্যাগের একটি টেবিল এবং একটি ম্যাচিং টেবিল থাকতে হবে। সুতরাং, যখন ব্যবহারকারী কোনও পোস্ট সম্পাদনা করতে চায় এবং আপনাকে কোন পোস্টটি সেই পোস্টের সাথে সম্পর্কিত তা প্রদর্শন করতে হবে, আপনাকে 3 টি সারণী জিজ্ঞাসা করতে হবে। যদি আপনার মেলে টেবিল / ট্যাগ সারণী দীর্ঘ হয় তবে এটি পারফরম্যান্সকে অনেক ক্ষতি করবে।

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

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


8

আমি এটিকে বিবেচনা করার জন্য কেবল দুটি কারণ হ'ল:

  • পারফরম্যান্স একটি স্বাভাবিক পদ্ধতির সাথে যথেষ্ট যথেষ্ট নয় isn't
  • আপনি সহজেই আপনার বিশেষত তরল / নমনীয় / পরিবর্তনশীল ডেটা মডেল করতে পারবেন না

আমি এখানে আমার নিজস্ব পদ্ধতি সম্পর্কে কিছুটা লিখেছিলাম:

কোনও নোএসকিউএল ডেটা স্টোর ব্যবহার করে আপনি কোন স্কেল্যাবিলিটি সমস্যার সম্মুখীন হয়েছেন?

(শীর্ষ উত্তর দেখুন)

এমনকি জেএসএনও যথেষ্ট দ্রুত ছিল না তাই আমরা একটি কাস্টম-পাঠ্য-বিন্যাসের পদ্ধতির ব্যবহার করি। আমাদের জন্য কাজ করে / চালিয়ে যায়

আপনি মোঙ্গোডিবি এর মতো কিছু ব্যবহার করছেন না এমন কোনও কারণ আছে কি? (মাইএসকিউএল হতে পারে "প্রয়োজনীয়"; কেবল কৌতূহলী)


6

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

২০১৪ সালে আমাদের অনেকগুলি ডাটাবেস সার্ভারে অ্যাক্সেস রয়েছে যা নির্দিষ্ট ধরণের ডেটা ব্যতিক্রমীভাবে ভালভাবে পরিচালনা করে।

  • মঙ্গো (নথি সংরক্ষণাগার)
  • Redis (কী-মান ডেটা সঞ্চয়স্থান)
  • মাইএসকিউএল / মারিয়া / পোস্টগ্রেএসকিউএল / ওরাকল / ইত্যাদি (সম্পর্কিত তথ্য)
  • কাউচডিবি (জেএসএন)

আমি নিশ্চিত যে আমি রব্বির এমকিউ এবং ক্যাসান্দ্রার মতো আরও কিছুকে মিস করেছি। আমার বক্তব্যটি হ'ল, আপনার যে ডেটা সংরক্ষণ করতে হবে তার জন্য সঠিক সরঞ্জামটি ব্যবহার করুন।

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


1
আপনার মতে RabbitMQ একটি ডাটাবেস সার্ভার বা কোনও ধরণের? আমি বলব এটি কোনও বার্তা হারাতে না পারার জন্য একটি দুর্দান্ত সামান্য দৃ .়তার বৈশিষ্ট্যযুক্ত একটি বার্তা-কেন্দ্রিক মিডলওয়্যার, তবে আমি কিছু দিয়ে ডেটা সংরক্ষণ করব না। শুধু আমার দুই সেন্ট।
ওসিরিজ

@ ওসিরিজ: আপনি সঠিক বলেছেন। আমার সম্ভবত এটি এ আলোচনায় অন্তর্ভুক্ত করা উচিত ছিল না।
চেদারমোনকি

5

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

সংরক্ষণ / আপডেট ফাংশন

function save($uid, $key, $val){
 global $dbh; // The PDO object
 $sql = $dbh->prepare("SELECT `json` FROM users WHERE `id`=?");
 $sql->execute(array($uid));
 $data      = $sql->fetch();
 $arr       = json_decode($data['json'],true);
 $arr[$key] = $val; // Update the value
 $sql=$dbh->prepare("UPDATE `users` SET `json`=? WHERE `id`=?");
 $sql->execute(array(
   json_encode($arr), 
   $uid
 ));
}

যেখানে id uid ব্যবহারকারীর আইডি, $ কী - আপডেট করার জন্য JSON কী এবং এর মানটি $ মান হিসাবে উল্লেখ করা হয় ।

মান ফাংশন পান

function get($uid, $key){
 global $dbh;
 $sql = $dbh->prepare("SELECT `json` FROM `users` WHERE `id`=?");
 $sql->execute(array($uid));
 $data = $sql->fetch();
 $arr  = json_decode($data['json'], true);
 return $arr[$key];
}

কোথায় $ কীটি JSON অ্যারের একটি কী যা থেকে আমাদের মান দরকার।


1
এটি বিতর্কিত ক্ষেত্রে ব্যর্থ হয়, আপনি যদি সদ্য পড়া জসনটি অন্য কোনও প্রক্রিয়া দ্বারা আপডেট হয়ে যায় এবং তারপরে আপনি জেসসনটিকে বর্তমান থ্রেডে ওভাররাইট করে সংরক্ষণ করেন? SELECT FOR UPDATEআপনার জাসন ডেটার মধ্যে লক বা সংস্করণ প্রয়োজন হতে পারে ।
ধ্রুবপাঠক

@ ধ্রুবপাঠক আপনি উত্তরটি ব্যবহার করে আপডেট করতে SELECT FOR UPDATEপারেন যাতে এটি আরও ভাল হয়। আমি এটি ব্যবহার করতে জানি না।
সাবিন

3

মাইএসকিউএলে জেএসএন সংরক্ষণ করার জন্য প্রাথমিক সমর্থন মাইএসকিউএল ৫..7.! জেএসওএন ল্যাব রিলিজ ( লিনাক্স বাইনারি , উত্স ) যোগ করা হয়েছে! রিলিজটি JSON- সম্পর্কিত ব্যবহারকারী-সংজ্ঞায়িত ফাংশনগুলির একটি ধারাবাহিক থেকে 2013 সালে সর্বজনীনভাবে প্রকাশিত হয়েছে বলে মনে হচ্ছে ।

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

CREATE TABLE users (id INT, preferences JSON);

INSERT INTO users VALUES (1, JSN_OBJECT('showSideBar', true, 'fontSize', 12));

SELECT JSN_EXTRACT(preferences, '$.showSideBar') from users;

+--------------------------------------------------+
| id   | JSN_EXTRACT(preferences, '$.showSideBar') |
+--------------------------------------------------+
| 1    | true                                      |
+--------------------------------------------------+

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

যদিও এটা এখনও প্রথম দিন আছে, মাইএসকিউএল সার্ভার দল পরিবর্তন যোগাযোগ একটি মহান কাজ করছেন উপর ব্লগ


2

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

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

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


2

জেএসএন পোস্টগ্রিএসকিউএল ডাটাবেসেও একটি বৈধ ডেটাটাইপ। তবে, মাইএসকিউএল ডাটাবেসটি এখনও আনুষ্ঠানিকভাবে জেএসনকে সমর্থন করে নি। তবে এটি বেকিং: http://mysqlserverteam.com/json-labs-release-native-json-data-type-and-binary-format/

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


1

আমি কোনও প্রকল্পের জন্য যে কোনও রেকর্ড করতে json ব্যবহার করি, আমি আসলে তিনটি টেবিল ব্যবহার করি! জসনের তথ্যের জন্য একটি, জসন কাঠামোর প্রতিটি মেটাডেটার সূচকের জন্য একটি (প্রতিটি মেটা একটি অনন্য আইডি দ্বারা এনকোড করা হয়), এবং সেশন ব্যবহারকারীর জন্য একটি one এই প্রাথমিক কোডের মানদণ্ডটি মাপদণ্ডে বেঁধে দেওয়া যায় না, তবে উদাহরণ হিসাবে আমি ব্যবহারকারীর দৃষ্টিভঙ্গি (সূচকের সাথে অভ্যন্তরীণ যোগদান) ছিল একটি বিভাগ (বা কিছু হিসাবে, ব্যবহারকারী হিসাবে ...) পেতে, এবং এটি খুব ধীর ছিল (খুব খুব ধীর , মাইএসকিএলে ব্যবহৃত দৃশ্যটি ভাল উপায় নয়)। অনুসন্ধান মডিউল, এই কাঠামোর মধ্যে, আমি যা কিছু করতে চাই তা করতে পারি, তবে, আমি মনে করি পুরো জসন ডেটা রেকর্ডের এই ধারণায় মঙ্গোদব আরও দক্ষ হবে। আমার উদাহরণস্বরূপ, আমি শ্রেণীর গাছ এবং আমার breadশ্বর ব্রেডক্রাম্ব তৈরির জন্য ব্যবহারকারীর দৃষ্টিভঙ্গি! এত জিজ্ঞাসা করতে হবে! নিজেই চলে গেল! এবং, প্রকৃতপক্ষে, এই ছোট ওয়েবসাইটটির জন্য, আমি এমন একটি পিএইচপি ব্যবহার করি যা গাছ এবং ব্রেডক্র্যাম্ব উত্পাদন করে, ডেটাসের নিষ্কাশন অনুসন্ধান মডিউল দ্বারা সম্পন্ন হয় (যারা কেবল সূচক ব্যবহার করেন), ডেটা টেবিলটি কেবল আপডেটের জন্য ব্যবহৃত হয়। যদি আমি চাই তবে আমি সমস্ত সূচীগুলি ধ্বংস করতে এবং প্রতিটি ডেটা দিয়ে এটি পুনরায় তৈরি করতে এবং সমস্ত ডেটা (জেসন) নষ্ট করার মতো বিপরীত কাজ করতে পারি এবং কেবল সূচক টেবিলের সাথে এটি পুনরায় জেনারেট করতে পারি। আমার প্রজেক্টটি অল্প বয়স্ক, পিএইচপি এবং মাইএসকিএল এর অধীনে চলছে, তবে কখনও কখনও আমি নোড জেএস এবং মংডোব ব্যবহার করার বিষয়টি এই প্রকল্পের জন্য আরও দক্ষ হবে।

আপনি যদি মনে করেন যে আপনি করতে পারেন কেবল জাস্টসন ব্যবহার করুন, কারণ এটি করতে পারেন! এবং, ভুল হয়ে থাকলে এটি ভুলে যান; ভাল বা খারাপ পছন্দ করে দেখুন, কিন্তু চেষ্টা করুন!

কম

ফরাসি ব্যবহারকারী


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

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

1

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


0

আপনি এই सारটি ব্যবহার করতে পারেন: https://gist.github.com/AminaG/33d90cb99c26298c48f670b8ffac39c3

এটি সার্ভারে ইনস্টল করার পরে (কেবলমাত্র রুট বিশেষাধিকারের প্রয়োজন সুপার নয়), আপনি এর মতো কিছু করতে পারেন:

select extract_json_value('{"a":["a","2"]}','(/a)')

এটি ফিরে আসবে a 2 You এবং আপনাকে সার্ভারে কোনও বাইনারি ইনস্টল করার দরকার নেই।

পুরানো প্রকল্পের ভিত্তিতে common-schema, তবে এটি আজও কাজ করছে https://code.google.com/archive/p/common-schema/


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