mysql - 問答網(wǎng)站的架構(gòu)數(shù)據(jù)庫設(shè)計(jì)?
問題描述
初學(xué)django,準(zhǔn)備練手仿一個(gè) 簡(jiǎn)化的segfmentfault網(wǎng)站。 現(xiàn)在有幾個(gè)疑問。
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=’數(shù)據(jù)’, max_length=4096 * 10) post_time = models.DateTimeField(verbose_name=’創(chuàng)建時(shí)間’, default=datetime.datetime.now) mod_time = models.DateTimeField(verbose_name=’修改時(shí)間’) 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=’狀態(tài)’, max_length=1, choices=Q_CHOICES) type = models.SmallIntegerField(verbose_name=’類別’) post_time = models.DateTimeField(verbose_name=’創(chuàng)建時(shí)間’, default=datetime.datetime.now) mod_time = models.DateTimeField(verbose_name=’修改時(shí)間’) vote = models.IntegerField(verbose_name=’得票’) data = models.TextField(verbose_name=’數(shù)據(jù)’, max_length=4096 * 10) user_id = models.PositiveIntegerField(verbose_name=’用戶ID’) view_num = models.PositiveIntegerField(verbose_name=’瀏覽數(shù)’) class Meta:verbose_name = ’問題列表’
現(xiàn)在數(shù)據(jù)庫這塊,都推薦反范式的數(shù)據(jù)庫設(shè)計(jì)。 這種問答網(wǎng)站適合用外鍵嗎?
我這張表還缺什么字段,我個(gè)人想到的只有這些, 求大神大概分析下。
問題表答案表
評(píng)論表
問題解答
回答1:規(guī)模上說,數(shù)據(jù)量大的不適合用外鍵,小的可以用;用途上安全性、可靠性很重要的就要用外鍵,否則可以不用。具體情況具體分析
具體缺啥字段由業(yè)務(wù)來決定
相關(guān)文章:
1. python - oslo_config2. 關(guān)于mysql聯(lián)合查詢一對(duì)多的顯示結(jié)果問題3. 實(shí)現(xiàn)bing搜索工具urlAPI提交4. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)5. 數(shù)據(jù)庫 - Mysql的存儲(chǔ)過程真的是個(gè)坑!求助下面的存儲(chǔ)過程哪里錯(cuò)啦,實(shí)在是找不到哪里的問題了。6. windows誤人子弟啊7. 冒昧問一下,我這php代碼哪里出錯(cuò)了???8. 如何用筆記本上的apache做微信開發(fā)的服務(wù)器9. 我在網(wǎng)址中輸入localhost/abc.php顯示的是not found是為什么呢?10. mysql優(yōu)化 - MySQL如何為配置表建立索引?
