Работа с курсами по проектированию баз данных на нескольких языках

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

class Language(models.Model):
    code = models.CharField(primary_key = True)
    name = models.CharField()


class TextContent(models.Model):
    textId = models.UUIDField(default = uuid4, primary_key = True,editable = False)
    language = models.OneToOneField(Language)

class OriginalText(models.Model):
    originalText = models.CharFIeld()
    language = models.ForeignKey(Language)
class Product(models.Model):
    name = models.OneToOneField()
    title = models.OneToOneField(OriginalText)
        
class Course(models.Model):
   languages = models.ManyToManyField(Language)

class Chapter(models.Model):
    title = models.OneToOneField(OriginalText)
    ...........
class Lesson(models.Model):
    title = models.OneToOneField(OrigianlText)

class LessonContent(models.Model):
   lesson = models.ForeignKey(Lesson)
   language = models.ForeignKey(Language)
   textContent = models.TextField()
   videoContent = models.FielField()


class CourseEnrollment(models.Model):
    course = models.ForeignKey(Course)
    user = models.ForeignKey(User)

В классе LessonContent у меня есть поля textContent и videoContent, потому что урок может быть видео или просто статьей

Я хочу отслеживать прогресс пользователя в плане глав и времени видео, чтобы продолжить, если он был прерван, и специально, что каждый урок видео может быть разной длины в зависимости от языка, я все еще пытаюсь найти способ достичь этого

class UserProgress(models.Model):
    ......

Итак, является ли мой способ работы с курсами на нескольких языках правильным, и если кто-то может помочь мне с отслеживанием прогресса пользователей, любая помощь будет очень признательна

Вернуться на верх