我被要求創建一個簡單的Java應用程序,從性能的角度(大學項目)測試MySQL和Mongodb。我正在使用一個非常簡單的sql模式:這個簡單的sql模式應該如何在Mongodb中建模
3個表格:藝術家,專輯和曲目。
關係:一位藝術家有很多專輯,一張專輯有很多曲目。
這將如何在Mongodb中建模?
我被要求創建一個簡單的Java應用程序,從性能的角度(大學項目)測試MySQL和Mongodb。我正在使用一個非常簡單的sql模式:這個簡單的sql模式應該如何在Mongodb中建模
3個表格:藝術家,專輯和曲目。
關係:一位藝術家有很多專輯,一張專輯有很多曲目。
這將如何在Mongodb中建模?
簡單的方法是讓單個文檔包含單個藝術家的所有信息。
事情是這樣的:
class Track {
int sequence;
String title;
...
}
class Album {
String name;
List<Track> tracks = new ArrayList<>();
}
@Document
public class Artist {
@Id
private String name;
private List<Album> albums = new ArrayList<>();
}
這是個不錯的辦法,因爲它是一個測試。它還顯示了實體/關係和文檔模型之間的根本區別。請注意關係如何不需要在文檔模型中維護。還要注意,你不需要'識別'專輯和曲目。它們只是文檔的一部分。
從面向對象的角度來看,它看起來更自然。
這在mongodb集合中看起來如何?我可以將所有三張表放在一個集合中,還是應該讓藝術家分開放置並將曲目嵌套在相冊集合中? – AngularBoy 2014-11-05 19:46:07
作爲文檔數據庫的Mongo沒有任何表。只有一個文件叫做「藝術家」。 – SteveS 2014-11-05 21:15:33
你有什麼想法?你有嘗試過什麼嗎?你爲什麼認爲模式會有所不同?您認爲SQL與NoSQL中的模式設計的關鍵標準是什麼?有區別嗎? – mnemosyn 2014-11-05 15:42:35