问答网站的架构数据库设计?

发布于 2022-09-05 03:12:39 字数 2070 浏览 13 评论 0

初学django,准备练手仿一个 简化的segfmentfault网站。 现在有几个疑问



class Answer(models.Model):

    id = models.IntegerField(primary_key=True)
    user_id = models.PositiveIntegerField(verbose_name='用户ID')
    vote = models.IntegerField(verbose_name='得票')
    data = models.TextField(verbose_name='数据', max_length=4096 * 10)
    post_time = models.DateTimeField(verbose_name='创建时间', default=datetime.datetime.now)
    mod_time = models.DateTimeField(verbose_name='修改时间')

    class Meta:
        verbose_name = '用户回答'


class Question(models.Model):
    Q_CHOICES = (
        ('0', u'Show'),
        ('1', u'Hide'),
        ('2', u'Closed'),
    )

    BOOL_CHOICES = (
        ('0', u'False'),
        ('1', u'True'),
    )

    id = models.IntegerField(primary_key=True)
    name = models.CharField(verbose_name='名称', max_length=128)
    status = models.CharField(verbose_name='状态', max_length=1, choices=Q_CHOICES)
    type = models.SmallIntegerField(verbose_name='类别')
    post_time = models.DateTimeField(verbose_name='创建时间', default=datetime.datetime.now)
    mod_time = models.DateTimeField(verbose_name='修改时间')
    vote = models.IntegerField(verbose_name='得票')
    data = models.TextField(verbose_name='数据', max_length=4096 * 10)
    user_id = models.PositiveIntegerField(verbose_name='用户ID')
    view_num = models.PositiveIntegerField(verbose_name='浏览数')

    class Meta:
        verbose_name = '问题列表'
  1. 现在数据库这块,都推荐反范式的数据库设计。 这种问答网站适合用外键吗?

  2. 我这张表还缺什么字段,我个人想到的只有这些, 求大神大概分析下。

问题表
clipboard.png
答案表
clipboard.png
评论表
clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜柠檬 2022-09-12 03:12:39

规模上说,数据量大的不适合用外键,小的可以用;用途上安全性、可靠性很重要的就要用外键,否则可以不用。具体情况具体分析

具体缺啥字段由业务来决定

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文