cdo*_*ock 8 firebase google-cloud-firestore
关于设计Firestore架构的一个简单问题:
我知道你必须使用正确的工具来完成工作,而Firestore不应该是一个关系数据库,但有没有建议的技术可以模拟多对多的关系?
例如:
我想建立一个物业管理应用程序
公司拥有属性,其中包含单位.层次结构在这里很简单.
因此,租户将随着时间的推移租用多个单位,每个单位将随着时间的推移拥有许多租户......所有这些都由租约封装,将1个单位与1个或更多租户联系起来.
单位可以拥有租约我猜,但是租户如何随着时间的推移看到他们所有的租约..租约有一个参考租户的子集合..是租户顶级?
只是寻找一些基本的建议..
或者只是使用关系数据库的GraphQL更好?
Gil*_*ert 11
不幸的是,这里没有免费的午餐.
单位可以拥有租约,但目前可以防止交叉单位查询,例如租户租用的单位.我们还不支持收集组查询,但是当我们这样做时,这是可行的.
为了解决这个问题的今天,使租赁之间的1对1映射一个顶级集合unit和tenant领域那么你的租赁历史会db.collection('leases').where('tenant', '==', 'cdock').您可以在租约中存储有关该单元的足够信息,以避免从租赁到单位加入以及有关租户的足够信息以避免加入.
如果每次租赁的租户数量很少,您还可以租赁1个单元到多个租户,租户设置如下:
'tenants': {
'cdock': true,
'alice': true,
'bob': true
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以查询您的历史记录db.collection('leases').where('tenants.cdock', '==', true).
租户可以是顶级(和加入)或不是,取决于您需要保留多少信息以及租约是否需要有关租户的最新信息.
| 归档时间: |
|
| 查看次数: |
3730 次 |
| 最近记录: |