mysql - 問答網站的架構資料庫設計?
过去多啦不再A梦
过去多啦不再A梦 2017-06-30 09:53:50
0
1
982

初學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)
学霸

規模上說,資料量大的不適合用外鍵,小的可以用;用途上安全性、可靠性很重要的就要用外鍵,否則可以不用。具體情況具體分析

具體缺啥字段由業務決定

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板