Данные об уровне игры для каждого пользователя в базе данных

Я создаю игру на Django, в которой есть около 500 уровней. Как мне хранить данные об уровне игры для каждого пользователя в базе данных (данные могут быть звездами для каждого уровня). Игра больше похожа на candy crush, где каждый пользователь зарабатывает звезды за каждый уровень.

Подходит ли для этого JSON? Должен ли я использовать отдельную таблицу для каждого уровня? Или я должен использовать одну таблицу для всех уровней с level_id как первичный ключ и user_id как внешний ключ?

Мое предложение: Если вы просто хотите хранить текущий уровень каждого пользователя - добавьте модель, которая будет сохранять больше деталей для каждого пользователя и свяжите ее с OneToOneField.

Вы можете увидеть хороший пример здесь:

https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html#onetoone

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    level = models.IntegerField(default=0, blank=True)
Вернуться на верх