這涉及到學生電子日記。學生頁面包含當天的所有學習時間段,每個時間段可以附加一個或多個附加的時間段。django表格搜索方法,過濾器,index_together或haystack
目前我的代碼是:
notes = []
for note in db.StudentPeriodNote.objects.all():
if student_id == note.student_id:
if day == note.day:
if period == note.period_text:
notes.append(note)
或者它可能是: -
notes = db.StudentPeriodNote.objects.filter(student_id=student_id, day=day, period=period)
在學年結束時有可能在表10-100,000筆記。 這個查詢每個週期被調用一次,所以每天查詢10-12次,或者一週查詢5次。
我擔心的是,對於學生顯示一天或幾周時間表的每個請求,多次調用此查詢將會很慢。
我可以在三個字段上使用index_together來加速搜索(注意:如果我將index_together添加到models.py然後運行dbsync,索引是否會創建,或者是否需要再次加載數據?)
我還沒有使用乾草堆,這是乾草堆適當的用途嗎?
我加index_together的模型類,跑執行syncdb - 沒有它沒有索引添加到數據庫中,我不得不刪除該表,然後運行執行syncdb,這意味着我需要保存記錄和重新加載它們 – jimscafe