【问题标题】:Store objects with key-value pairs使用键值对存储对象
【发布时间】:2021-07-31 13:25:53
【问题描述】:

我有以下数据,(所有数据都是TEXT)。

以下数据是用于多语言翻译的语言文件。

data: {
 'MAIN_KEY':{
    'A_UNIQUE_KEY':'data1',
    'A_UNIQUE_KEY':'data2',
    'A_UNIQUE_KEY':'data3',
  },
 'MAIN_KEY':{
    'A_UNIQUE_KEY':'data1',
    'A_UNIQUE_KEY':'data2',
    'A_UNIQUE_KEY':'data3',
    'A_UNIQUE_KEY':'data2',
    'A_UNIQUE_KEY':'data3',
  },
  ......
}

在这里,MAIN_KEY 对于每组都不同。在这种情况下,组件名称,例如:LOGIN_PAGE

A_UNIQUE_KEY 在每种情况下也会有所不同。在这种情况下,字段名称。例如:USER_NAME 等等。

每组键值对的数量也会有所不同。

我需要存储多种语言的数据。但是每个文件的 MAIN_KEYA_UNIQUE_KEY 都是相同的。

每个文件都具有相同的结构,但只有 data1data2.. 会有所不同,

我想要实现的是以这种格式存储和管理数据,然后通过 API 为我的不同应用程序生成 JSON 文件。我应该可以对这些数据进行CRUD 操作。

创建数据库是这里唯一的选择吗?

【问题讨论】:

  • 现在:请准确提出 1 个(具体研究非重复)问题。但是——除非定义它,否则工程中没有“最佳”之类的东西。同样不幸的是,所有合理的实际定义都需要大量的经验,以及与对细节的混乱敏感度相互作用的大量因素。进行简单的设计。当您通过测量证明您可以想到的设计和所有替代方案都存在问题时(无论当时意味着什么),请提出 1 个问题。 Strategy for “Which is better” questions
  • @philipxy 我明白了。

标签: sql arrays json database database-design


【解决方案1】:

XML 和 JSON 是像树一样的层次结构,其中一个父节点可以有子节点,每个子节点只有一个父节点,而数据库通常是一个关系系统,其中一个实体可以有许多父节点、兄弟节点和子节点可以这么说:-)

这意味着为了存储您的 JSON,您至少有以下三个选项:

  1. 在 RDBMS 中创建一个简单的数据库,其中每个子表只有一个父表。
  2. RDBMS 中只有一个表,并将您的 JSON 存储在该表中的一行中。 (毕竟 JSON 只是一个字符串。)
  3. 使用非关系 DBMS。如果我没记错的话,甚至还有 JSON DBMS。

您选择哪个选项取决于您的数据以及您想用它做什么。

【讨论】:

  • 感谢您的回答,我已经用更多信息更新了这个问题
【解决方案2】:

我最终使用了 DynamoDB

借助 DynamoDB,我可以使用 Composite Key 将数据存储在 One Table 中。并使用 DynamoDBMapper 进行 CRUD 操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 2013-03-15
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多