mysql - 问答网站的架构数据库设计?
过去多啦不再A梦
过去多啦不再A梦 2017-06-30 09:53:50
0
1
989

初学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梦

全部回复(1)
学霸

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板