วันนี้ฐานข้อมูลเชิงสัมพันธ์ล้มลงเพราะไม่มีประสิทธิภาพ แต่เมื่อจัดเก็บประเภทของบันทึกที่คุณพูดถึงคุณไม่ต้องการประสิทธิภาพอย่างแท้จริงเพราะเกมหรือผู้ใช้ไม่สามารถเข้าถึงได้ตลอดเวลา - เฉพาะทีมของคุณเท่านั้นที่จะต้องมี เพื่ออ่านข้อมูล
ดังนั้น "ประสิทธิภาพ" ไม่สำคัญมาก สิ่งสำคัญคือการสั่งซื้อข้อมูลในแบบที่ทำให้ง่ายต่อการบอกเล่าเรื่องราวของสิ่งที่ผู้ใช้กำลังทำในเกม โดยทั่วไปแล้วนักพัฒนาของคุณจะต้องใช้ข้อมูลนี้และแสดงในอินเทอร์เฟซที่อ่านง่ายสำหรับนักวิเคราะห์และบางครั้งนักวิเคราะห์จะต้องค้นหาข้อมูลเพื่อเจาะลึกพฤติกรรมของผู้ใช้ ตัวอย่างเช่นหากผู้เล่นซื้อไอเท็มบางอย่างก่อนการอัปเดต แต่หยุดการซื้อหลังจากอัปเดตนักวิเคราะห์จะได้รับประโยชน์จากการเขียนเคียวรีบางอย่างที่เปิดเผยตัวเลขจำนวนหนึ่งเกี่ยวกับพฤติกรรมรอบการซื้อนั้นเพื่อพิจารณาว่าทำไมผู้ใช้ไม่ซื้ออีก เป็นการดีที่สุดหากพวกเขามีภาษาคิวรีมาตรฐานที่จะทำงานกับเอกสารนั้นได้ดี หากพวกเขาต้องทำให้แบบสอบถามเหล่านี้เป็นรูปแบบไบนารีที่กำหนดเองงานของพวกเขาจะทำให้หนักขึ้น
โดยทั่วไปกิจกรรมของเกมจะมีลักษณะเช่นนี้ (นี่เป็นรูปแบบของ DeltaDNA โดยเฉพาะ)
{
"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"]
},
}
เหตุการณ์มักจะมีชื่อเหตุการณ์, userID, ID เซสชัน, เวลาประทับและพารามิเตอร์ที่ช่วยให้คุณสามารถบันทึกข้อมูลใด ๆ ที่คุณพบว่ามีประโยชน์ในการบันทึกโดยรอบเหตุการณ์นั้น และจากประสบการณ์ของฉันรูปแบบฐานข้อมูลเชิงสัมพันธ์ที่ดีที่สุดสำหรับการบันทึกโครงสร้างดังกล่าว