![](/img/trans.png)
[英]How to serialize/model inside model json data from Firestore on Flutter
[英]Model Firestore Data
我正在使用Firestore创建一个新数据库。 我是NoSQL的新手,正在尝试确定对数据建模的最佳实践。 我知道默认情况下,Firestore数据较浅(与实时数据库相对),因此嵌套不是问题。 也就是说,建模或多或少的标准用户对象的最佳方法是什么?
选项1-仅限家长级别:
users {
uid {
name: 'Bob',
officeNumber: 1234567890,
faxNumber: 0987654321,
email: 'test@test.com',
domain: '@test.com',
facebook: 'bobdylan97',
twitter: 'bobbystwitter',
instagram: 'bobinsta',
street: '111 N Elm St',
city: 'Brooklyn',
state: 'NY',
zip: 12345,
height: 72,
weight: 200,
hairColor: 'brown',
eyeColor: 'blue'
}
}
选项2-嵌套多个级别:
users {
uid {
personal {
name {
first: 'Bob',
last: 'Dylan'
},
attributes {
height: 72,
weight: 200,
hairColor: 'brown',
eyeColor: 'blue'
}
},
contact {
phone {
office: 1234567890,
fax: 0987654321
},
email: 'test@test.com',
domain: '@test.com',
social {
facebook: 'bobdylan97',
twitter: 'bobbystwitter',
instagram: 'bobinsta'
}
},
address {
street: '111 N Elm St',
city: 'Brooklyn',
state: 'NY',
zip: 12345
}
}
}
我正在为此服务的公司正在增长,并且可能会在各个时间点添加其他数据,因此扩展是一个潜在的问题。 是否像选项2一样对数据分组有任何问题或担忧? 像这样的数据建模的最佳实践是什么? 是针对查询或组织优化模型的最佳实践吗?
我建议您注意: 什么是NoSQL数据库? -了解Cloud Firestore第1版
它完美地解释了Firestore的基本概念。
如果将用户存储在users
集合中,并且uid
是文档ID,则选项2应该适合您。
您仅在文档中存储有关每个用户的相当少量的数据,因此您不应达到1Mb的限制。 您也可以在这里毫无问题地压缩base64编码的个人资料图片。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.