我玩最好的方式來建模mongodb文檔MongoDB實例vs關係denormalistion
我正在爲一所學校建模。
學生有很多科目。
Student{
subjects:[ {name:'',
level:'',
short name:''
},
{...},
{...}]
}
決定對學生進行非正常化和嵌入科目的表現。
在極少數情況下,當個體需要查詢和更新。
subjects.all
subject1.short_name = 'something new'
我知道我將不得不迭代通過每個學生來更新每個主題reocrd。
但是,最好的方式返回所有獨特的主題?
你能做例如student.subjects名稱的獨特的搜索?
或者是它最好有另一個集合這是
Subjects{
name:'',
level:'',
short name:''
}
我仍然保持了去歸一化Student.subject。但這只是爲了探索所有提供的主題。
的更新將更新此+每嵌入式Student.subject?
任何建議/建議?
您無法查詢非常精通的非標準化數據庫中的所有內容。你的數據結構應該取決於哪些查詢對你很重要。首先列出你需要的所有查詢並在這裏添加。像這樣的多對多關係通常需要規範化的結構,但是您可以在幾個地方複製數據以使查詢更容易。 – Jayz
@Jayz數據重複是數據庫編程的禍根,你肯定不想複製這個 – Sammaye
@Sammaye,同意你的通用語句,但只適用於關係數據庫。在某些情況下,使用非關係數據庫是不可避免的,否則某些查詢可能需要很長時間才能執行。 – Jayz