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:规模上说,数据量大的不适合用外键,小的可以用;用途上安全性、可靠性很重要的就要用外键,否则可以不用。具体情况具体分析
具体缺啥字段由业务来决定
相关文章:
1. dockerfile - 我用docker build的时候出现下边问题 麻烦帮我看一下2. 为什么我ping不通我的docker容器呢???3. Mongodb web连接28017后,提示登录的用户名密码在 db那里预设置4. docker-machine添加一个已有的docker主机问题5. java - 做数据库向手机端的推送要系统地学习哪些知识?求大神指点,谢谢!6. java编程思想第4版中文版的几处谬误?7. 请问怎么改变超链接字体的颜色?8. java - jdbc无法连接postgresql数据库9. java - C语言的一道算法题-兄弟郊游问题 求解?10. 急急急!!!求大神解答网站评论问题,有大神帮帮小弟吗
![dockerfile - 我用docker build的时候出现下边问题 麻烦帮我看一下](http://www.haobala.com/attached/image/news/202311/1028095cc6.png)