2014-11-05 22 views
0

我被要求創建一個簡單的Java應用程序,從性能的角度(大學項目)測試MySQL和Mongodb。我正在使用一個非常簡單的sql模式:這個簡單的sql模式應該如何在Mongodb中建模

3個表格:藝術家,專輯和曲目。

關係:一位藝術家有很多專輯,一張專輯有很多曲目。

這將如何在Mongodb中建模?

+0

你有什麼想法?你有嘗試過什麼嗎?你爲什麼認爲模式會有所不同?您認爲SQL與NoSQL中的模式設計的關鍵標準是什麼?有區別嗎? – mnemosyn 2014-11-05 15:42:35

回答

0

簡單的方法是讓單個文檔包含單個藝術家的所有信息。
事情是這樣的:

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<>(); 
} 

這是個不錯的辦法,因爲它是一個測試。它還顯示了實體/關係和文檔模型之間的根本區別。請注意關係如何不需要在文檔模型中維護。還要注意,你不需要'識別'專輯和曲目。它們只是文檔的一部分。

從面向對象的角度來看,它看起來更自然。

+0

這在mongodb集合中看起來如何?我可以將所有三張表放在一個集合中,還是應該讓藝術家分開放置並將曲目嵌套在相冊集合中? – AngularBoy 2014-11-05 19:46:07

+0

作爲文檔數據庫的Mongo沒有任何表。只有一個文件叫做「藝術家」。 – SteveS 2014-11-05 21:15:33

相關問題