我试图从NoSQL数据库开始,因此开始了一个简单的字典项目来训练。
我正在研究Amazon Web Services DynamoDB。
我的词典需要用他们的语言和翻译来存储单词。 所以在SQL中我会有两个表,一个用于单词,一个用于翻译映射。
根据亚马逊的视频(here),为了建立N到M的关系,我们只需要创建一个包含复合主键的表:
表和PK交换的二级索引:
这很有道理。
我的单词有一种语言,需要参加主键,否则当用户输入两种语言的单词时,我会发生冲突。所以我的word table主键看起来像这样:
现在,我想将N-to-M映射策略(1)应用于我的表(2);这是我的问题,我的表有一个复合键。所以我需要能够"合并"我的对话/单词,我对此没有好感:
所以现在我觉得我显然错过了NoSQL的一些东西,或者说我的方案在某处错了。只需要一个新的眼睛来发现我的错误:))
答案 0 :(得分:3)
我会设计我的密钥以连接语言和单词,然后按照您的方法在翻译的单词上创建全局二级索引。例如: “en:vie”代表英文单词“vie”,“fr:vie”代表法语单词“vie”。
为什么你说这不是一个好方法?