Каковы некоторые эвристики для структурирования отношений масштабируемой модели в Django? - PullRequest
0 голосов
/ 24 декабря 2018

Я не знаю много о структуре базы данных.Тем не менее, я хотел бы структурировать свои модели таким образом, чтобы он был хотя бы несколько эффективен.Например, у меня есть стандартная модель Django User.Когда пользователи регистрируются, они создают профиль, выбирают несколько действий (в интерфейсе, который показывает доступные действия) и ранжируются в соответствии с упомянутыми действиями:

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

class UserProfile(models.Model):
    user = OneToOneField(User)
    ...
    display_name = models.CharField(max_length=20)


class UserActivity(models.Model): 
    RANKINGS = (
            (0, '0 - Newbie'),
            (1, '1 - Advanced'),
            (2, '2 - Expert'),
    )
    activity = ForeignKey(Activity, related_name="activities")
    user = ForeignKey(UserProfile)
    rank = models.PositiveSmallIntegerField(choices=RANKINGS)

class Activity(models.Model):
    label = models.CharField(max_length=20)
    description = models.TextField()

Это кажется мне хорошим и хорошим, но частовещи кажутся хорошими и хорошими и ... хорошо, они не.Мне интересно, есть ли набор стандартов или эвристик, которые я могу использовать для структурирования моделей.О чем мне следует думать, когда я создаю ManyToMany отношений или, например, ForeignKeys?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...