django - 是否应该在单独的 BooleanField 中跟踪重要指标,还是 CharField 就足够了?
问题描述
我想跟踪我的应用程序中消息的统计信息。一个重要的指标是“初始消息”,因为这意味着新的对话开始了。将初始消息作为单独的 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)
解决方案
在数据库规范化方面,如果您将有关消息的信息存储在表中,正确的方法是您的消息表和消息类别表之间有一个外键,那么您只需要创建一个带有“类别表中的“初始消息”(模型 B)
推荐阅读
- assembly - 有没有办法在汇编中将 char 转换为其 ASCII 值?
- ms-access - MS Access - 从组合框选择的结果中识别特定的文本框
- javascript - 使用 node express 从类中渲染方法
- database - B+树的体积是多少
- django - 带有中间件的 django 中间件错误没有参数
- java - 允许在循环期间修改列表
- python - 如何在python中使用openpyxl拉出列中的最后一个单元格
- javascript - 如何数组映射而不是嵌套的for循环
- android - 将数据从 CSV 文件复制到 Android 中的 Sqlite 文件
- firebase - Cloud Functions - CORS - 无法读取未定义的属性“来源”