我们从webapi获取数据,我们需要将数据存储在我们的服务器上。数据有一些主要的对象类型:房屋,住房合作社和山寨信息。以下是两个回复的简短代码段:
House:
{ "advertiseOn": {
"homepage": true,
"showAsComming": true,
"showTodaysHousing": true,
"showAsReferenceHousing": true,
"imageIds": [
"sample string 1",
"sample string 2"
],
"documents": [
{
"name": "sample string 1",
"id": "sample string 2",
"extension": "sample string 3",
"url": "sample string 4"
},
{
"name": "sample string 1",
"id": "sample string 2",
"extension": "sample string 3",
"url": "sample string 4"
}
],
Housing cooperative
{
"advertiseOn": {
"homepage": true,
"showAsComming": true,
"showTodaysHousing": true,
"showAsReferenceHousing": true,
"imageIds": [
"sample string 1",
"sample string 2"
],
"documents": [
{
"name": "sample string 1",
"id": "sample string 2",
"extension": "sample string 3",
"url": "sample string 4"
},
{
"name": "sample string 1",
"id": "sample string 2",
"extension": "sample string 3",
"url": "sample string 4"
}
],
在上面的片段中,住宅和住房合作社的数据是相同的,但他们的数据不同。
如果他们拥有相同的数据就不会有问题,只需将它们映射到与每个对象有关系的Object表。例如,广告。
由于每个主要对象有大约20-25个不同的对象,这将导致75个不同的数据库表,它只是感觉不是解决此问题的最佳方法。存储此数据的最简单方法是什么?我们需要能够使用不同的参数搜索数据。例如,EstateId。
有任何想法或建议吗? // H
答案 0 :(得分:1)
根据您的指定,似乎任何文档数据库都符合要求,特别是那些本地存储Json的文档。 (很好的例子是RavenDB和MongoDB - 具有存储Json的动态模式的文档数据库)
选择NoSQL数据库主要是关于你的问题,如下问题:
此外,imho选择正确的数据库更容易在之后决定您想要如何建模数据。 This blog post可以为NoSQL数据库中的数据建模提供出色的介绍。
答案 1 :(得分:1)
Michael是对的,您需要了解如何访问数据,然后了解不同数据库的限制。 您可以在MongoDb中存储JSON并创建针对JSON文档优化的索引,但是如果您需要在房屋和住房合作社之间进行某种连接,则需要创建map / reduce函数,因为集合之间没有连接。我认为MongoDb仍然区分大小写,所以你不能使用排序规则。
如果您已经在使用MS SQL,您甚至可以将JSON存储为文本。在Sql Server 2016中,CTP3将提供用于解析和查询JSON文本的内置函数,请参阅JSON in Sql Server 2016 post。如果您将使用某些旧版本的Sql Server,您可以使用一些现有的CLR / JSON库,例如Sql4Json或JsonSelect,或使用Json.Net构建您自己的库
没有绝对最好的方法来解决此问题,您需要分析哪个平台可以适合您的用例。