使用键值对存储对象

时间:2021-05-10 05:55:56

标签: sql arrays json database database-design

我有以下数据,(所有数据都是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 操作。

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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

我最终使用了 DynamoDB

借助 DynamoDB,我可以使用复合键将数据存储在一张表中。并使用 DynamoDBMapper 进行 CRUD 操作。