想想一个标准的城市建设者游戏。你有城市,每个城市都有单位,每个单位都有装备(装备),城市本身有更多装备(未装备,它们在某个地方的盒子里,呵呵)。
A) 首先,我想制作 3 个系列。
Cities: {_id, name, locationX, locationY}
Units: {_id, name, city_id, unitType}
Items: {_id, name, itemType, unitEquipped} where unitEquipped was optional( item belonged to the city).
B)然后我把它变成:
Cities: {_id, name, locationX, locationY}
Units: {_id, units:[ {name, city_id, unitTye}, {name, city_id, unitTye}... ]}
Items: {_id, items: [ {name, itemType, unitEquipped}, {name, itemType, unitEquipped}... ]}
C)最后,这是一个集合:
Cities:
{
_id, name, locationX, locationY,
units: [ {name, unitTye}, {name, unitTye}... ],
items: [ {name, itemType, unitEquipped}, {name, itemType, unitEquipped}... ]
}
请注意单位中不再有 city_id,因为没有必要。谁能告诉我这三种风格的优缺点?我认为最后一个冗余数据最少,但如果我想要 locationX,我必须处理该文档中的其他信息,对吗?