প্রাসঙ্গিক ডেটাবেসগুলি আজকাল অদক্ষ হওয়ার জন্য নক করা হয়, তবে আপনি যে ধরণের লগের কথা বলছেন তা সংরক্ষণ করার সময় আপনার সত্যিকারের দক্ষতার প্রয়োজন হয় না কারণ তারা খেলা বা এর ব্যবহারকারীরা নিয়মিত অ্যাক্সেস করতে পারবেন না - কেবল আপনার দলের প্রয়োজন হবে তথ্য পড়তে।
সুতরাং "দক্ষতা" এতটা গুরুত্ব দেয় না। আরও গুরুত্বপূর্ণ বিষয়গুলি এমনভাবে ডেটা অর্ডার করে যা ব্যবহারকারীরা গেমটিতে কী করছে তার গল্প বলা সহজ করে তোলে। আপনার বিকাশকারীদের সাধারণত এই ডেটাটি গ্রাস করতে হবে এবং এটি এমন একটি ইন্টারফেসে প্রদর্শন করতে হবে যা বিশ্লেষকদের জন্য সহজেই পড়তে সহজ হয় এবং বিশ্লেষকদের মাঝে মাঝে ব্যবহারকারীর আচরণের গভীর গভীরতা জানতে ডেটাটি জিজ্ঞাসা করতে হবে। উদাহরণস্বরূপ, যদি খেলোয়াড়গণ কোনও আপডেটের আগে একটি নির্দিষ্ট আইটেম কিনে থাকেন তবে আপডেটের পরে এটি কেনা বন্ধ করে দেন, কোনও বিশ্লেষক নির্দিষ্ট ক্রিয়াগুলি লিখে উপকৃত হবেন যা ব্যবহারকারীরা আর কেন কিনবেন না তা নির্ধারণ করতে সেই ক্রয়ের চারপাশে আচরণের বিষয়ে নির্দিষ্ট সংখ্যা প্রকাশ করে। এটির সাথে কাজ করার জন্য যদি তাদের কাছে একটি মানক ক্যোয়ারী ভাষা থাকে তবে এটি সবচেয়ে ভাল is যদি তাদের এই প্রশ্নগুলিকে একটি কাস্টম বাইনারি ফর্ম্যাটে তৈরি করতে হয় তবে তাদের কাজগুলি আরও শক্ত করা হবে,
সাধারণত গেমের ইভেন্টগুলি এ জাতীয় কিছু দেখায় (এটি বিশেষত ডেল্টাডিএনএর ফর্ম্যাট)
{
"eventName":"specific event code – eg. gameStarted",
"userID":"ABCD1-4321a879b185fcb9c6ca27abc5387e914",
"sessionID":"4879bf37-8566-46ce-9f3b-bd18d6ac614e",
"eventTimestamp":"yyyy-mm-dd hh:mm:ss.SSS",
"eventParams":
{
"platform":"WEB",
"param1":"stringParam",
"param2":true,
"param3":1234,
"param4":["a","b","c"]
},
}
ইভেন্টটিতে সাধারণত একটি ইভেন্টের নাম, একটি ইউজারআইডি, একটি সেশন আইডি, টাইমস্ট্যাম্প এবং পরামিতি অন্তর্ভুক্ত থাকে যা আপনাকে সেই ইভেন্টটির চারপাশে রেকর্ড করার জন্য দরকারী যে কোনও ডেটা রেকর্ড করতে দেয়। এবং আমার অভিজ্ঞতা অনুসারে, এমন কাঠামোর রেকর্ডিংয়ের জন্য রিলেশনাল ডাটাবেস ফর্ম্যাটগুলি সেরা।