我想将 swift 中的对象层次结构映射到 firebase,并且我正在尝试找出执行此操作的最佳模式。
我有一个带有属性 propParent
的父类 Parent
和两个子类:带有属性 propChild1
的 Child1
和具有属性 propChild2
的 Child2
。
将其映射到 Firebase 架构的最有效且可维护的方法是什么。
class Parent {
var propParent: String
}
class Child1: Parent {
var propChild1: String
}
class Child2: Parent {
var propChild2: String
}
最佳答案
在 NoSQL 数据库中,几乎从来没有一个对所有用例都最有效的模型。这是因为在 NoSQL 中,您经常需要针对要在应用程序中实现的每个用例修改和扩展数据模型。为了更好地介绍该主题,我建议阅读 NoSQL data modeling并观看Firebase for SQL developers .
也就是说,最基本的是双向多对多关系,可以建模为:
users
parent: {...}
child1: {...}
child2: {...}
parents: /* contains the parent for each user */
child1: "parent",
child2: "parent"
children: /* contains the children for each user */
parent:
child1: true,
child2: true
这里通过为 parents
下的每个节点指定一个值来模拟用户只能有一个父节点的事实。每个用户可能有多个子项被建模为 children
下每个节点的集合。该集合被建模为所谓的索引:String: true
对的集合,其中值 (true
) 是无意义的标记。
这使用了其他一些答案中的概念,因此我将链接您以获取更多信息:
关于swift - 将 swift 中的对象层次结构映射到 firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863850/