我正在创建一个游戏,用户可以在其中设计自己的关卡(放置怪物、陷阱、任务等)。我使用的是 Symfony 2.3,并选择了 MongoDB,因为它有 Doctrine 支持。
当有人编辑关卡并保存更改时,ZoneData JSON 被提交到服务器。这个 JSON 的结构是一些参数(名称、大小、天气)和数百个ZoneObject(大约有 30 种不同的类型)。这些 ZoneObject 中的每一个都是基类的扩展,例如...
class ZoneObject extends Document {
protected $xPos;
protected $yPos;
}
class MonsterObject extends ZoneObject {
protected $name;
protected $challengeRating;
}
这些 ZoneObject 现在只是文档,因为我知道它们不是实体。我不确定它们应该是文档还是简单的类。它们永远不需要自己保存,它们始终是 ZoneData 的一部分。但是,它们确实需要经过验证,并通过表单进行编辑。
所以我的问题是 - 在这样的设置中,你会制作这些文档,还是坚持使用普通的旧 PHP 对象?我担心具有 500 个嵌入式子文档的 MongoDB 文档将如何扩展。
抱歉,如果我在这里遗漏了一些简单的东西。
在此先感谢,詹姆斯