Bu günlerde ilişkisel veritabanları verimsiz olduğu için çalıyor, ancak bahsettiğiniz günlüklerin türünü depolarken, verimliliğe ihtiyacınız yok çünkü oyun veya kullanıcıları tarafından sürekli olarak erişilmeyecek - sadece ekibinizin ihtiyacı olacak veri okumak için.
Yani "verimlilik" o kadar önemli değil. Daha da önemlisi, verileri kullanıcıların oyunda neler yaptığını anlatacak şekilde sıralamaktır. Geliştiricilerinizin genellikle bu verileri tüketmesi ve analistler için okunması kolay bir arayüzde göstermesi gerekir ve analistlerin bazen kullanıcı davranışını derinlemesine incelemek için verileri sorgulamaları gerekir. Örneğin, oyuncular bir güncellemeden önce belirli bir öğeyi satın alıyor, ancak bir güncellemeden sonra satın almayı durduruyorsa, bir analist, kullanıcıların neden artık satın almadığını belirlemek için satın alma işlemini çevreleyen davranışla ilgili belirli sayıları ortaya çıkaran belirli sorgular yazarak fayda sağlayacaktır. İyi belgelenmiş standart bir sorgu diline sahip olmaları en iyisidir. Bu sorguları özel bir ikili biçimde yapmak zorunda kalırlarsa, işleri ÇOK daha zor hale getirilecek,
Genellikle oyun etkinlikleri buna benzer (bu özellikle DeltaDNA'nın biçimidir)
{
"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"]
},
}
Olay genellikle bir olay adı, bir kullanıcı kimliği, bir oturum kimliği, zaman damgası ve o olayı çevrelemek için yararlı bulduğunuz verileri kaydetmenizi sağlayan parametreler içerir. Deneyimlerime göre, ilişkisel veritabanı formatları böyle bir yapıyı kaydetmek için en iyisidir.