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. javascript - js 有什么優雅的辦法實現在同時打開的兩個標簽頁間相互通信?2. html5和Flash對抗是什么情況?3. javascript - 怎樣限制同一個瀏覽器不能登錄兩個賬號4. java - 新手做一個安卓視頻播放器,想實現一個進度條,按鈕那種在視頻下方懸浮的功能,不知道思路!5. css3 - Typecho 后臺部分表單按鈕在 Chrome 下出現靈異動畫問題,求解決6. javascript - angular和jquery都用到了$符號,一起用會不會沖突?7. java - android代碼重構:如何把app設置里的頭像UI做成通用的?8. 想找個php大神仿個網站。9. javascript - 一個抽獎的效果(如圖)?10. javascript - jquery怎么給select option一個點擊時觸發的事件,如圖 如果選擇自定義觸發一個時間?
