Следует ли отслеживать Важную Метрику в отдельном BooleanField или достаточно CharField? - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу отслеживать статистику сообщений в моем приложении.Важным показателем является «исходное сообщение», поскольку это означает, что начался новый разговор.Лучше иметь исходное сообщение в виде отдельного BooleanField или достаточно, чтобы «начальное сообщение» отслеживалось как строка в категории сообщений CharField.

Укажите, рекомендуете ли вы Модель A, Модель B или другой подход и почему.

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

# Model A
class Data(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    message = models.CharField(max_length=20)
    message_channel= models.CharField(max_length=20) #Facebook, Twitter, SMS
    message_category = models.CharField(max_length=20) #initial message, reply, feedback_reply
    initial_message = models.BooleanField()
    created_at = models.DateTimeField(auto_now_add=True)

# Model B
class Data(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    message = models.CharField(max_length=20)
    message_channel= models.CharField(max_length=20) #Facebook, Twitter, SMS
    message_category = models.CharField(max_length=20) #initial message, reply, feedback reply
    created_at = models.DateTimeField(auto_now_add=True)

1 Ответ

2 голосов
/ 20 сентября 2019

С точки зрения нормализации базы данных, если вы храните информацию о сообщениях в таблице, правильный путь заключается в том, что у вас есть внешний ключ между таблицей сообщений и таблицей категорий сообщений, тогда вам нужно только создать новую строкус «Начальным сообщением» в вашей таблице категорий (Модель B)

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