问答网站的架构数据库设计?
初学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 = '问题列表'
现在数据库这块,都推荐反范式的数据库设计。 这种问答网站适合用外键吗?
我这张表还缺什么字段,我个人想到的只有这些, 求大神大概分析下。
问题表
答案表
评论表
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
规模上说,数据量大的不适合用外键,小的可以用;用途上安全性、可靠性很重要的就要用外键,否则可以不用。具体情况具体分析
具体缺啥字段由业务来决定