搜索

首页  >  问答  >  正文

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

初学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. 我这张表还缺什么字段,我个人想到的只有这些, 求大神大概分析下。

问题表

答案表

评论表

过去多啦不再A梦过去多啦不再A梦2699 天前986

全部回复(1)我来回复

  • 欧阳克

    欧阳克2017-06-30 09:55:50

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

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

    回复
    0
  • 取消回复