Mysql 这个简单的sql模式应该如何在Mongodb中建模

Mysql 这个简单的sql模式应该如何在Mongodb中建模,mysql,mongodb,nosql,Mysql,Mongodb,Nosql,我被要求创建一个简单的Java应用程序,从性能角度测试MySQL和Mongodb。我使用的是一个非常简单的sql模式: 3张表格:艺术家、专辑和曲目 关系:一个艺术家有多张专辑,一张专辑有多首曲目 这将如何在Mongodb中建模 简单的方法是使用一个文档,其中包含单个艺术家的所有信息。 大概是这样的: class Track { int sequence; String title; ... } class Album { String name; Li

我被要求创建一个简单的Java应用程序,从性能角度测试MySQL和Mongodb。我使用的是一个非常简单的sql模式:

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<>();
}
这不是一个坏方法,因为这是一个测试。它还显示了实体/关系和文档模型之间的根本区别。请注意,在文档模型中不需要维护关系。另外请注意,您不需要“标识”专辑和曲目。它们只是文件的一部分


从面向对象的角度来看,它看起来更自然。

你的想法是什么?你试过什么吗?为什么你认为模式会有所不同?您认为SQL与NoSQL中模式设计的关键标准是什么?有什么不同吗?在mongodb系列中会是什么样子?我可以将所有三个表放在一个集合中,还是应该将艺术家分开,并将曲目嵌套在一个专辑集合中?Mongo作为一个文档数据库,没有任何表。只有一个文件叫做艺术家。