embed 是说的嵌入式的,就是说本来就是一体的,类似于组合关系,嵌入与被嵌入之间是一个完整的整体,不可分隔。读取被嵌入的,那么嵌入的也就跟着读取出来了。
has 是说的是引用关系,不是一体的,但是是一个聚合的关系,拥有与被拥有之间是互相独立的个体,只是因为逻辑需要构成一个聚合体。读取拥有的,被拥有的引用被读取,本身数据没有被读取。
以上的理解,对吗?
如果对,那么很多时候,在 Mongodb 中,有的关系,既可以用 embed,也可以用 has。 比如: 一个游戏可以在某平台上运行
游戏和平台之间既可以是 embed 关系,也可以是 has_many 关系。使用哪个是不是取决于看游戏的时候是不是一定要平台数据?
求指点!
thx