2015-01-10 161 views
1

对不起,我是NoSQL的新手。NoSQL - DynamoDB - 设计表

我的情况下,如果在关系数据库,我有3个表:

Book  (**Book_ID**, Book_Name, Page_Number). 

Category (**Category_ID**, Category_Name). 

Author (**Author_ID**, Author_Name). 

一本书只有一个作者,一个类别,而是作者有许多书,和一个类别

也也得到了很多书。 [作者] - (1 ------- n) - [图书] - (n ------- 1) - [类别]

关系数据库我们只是创建外键在书中作为

Book(**Book_ID**, Book_Name, Page_Number, *Category_ID*, *Author_ID*) 

,但我们不能用NoSQL做到这一点。

所以,我真的不解决如何设计表(S)与NoSQL的回答这两个查询是:

1. Show me all the books belong to one of Category. 
(Select * From Book, Category 
Where Book.Category_ID=Category.Category_ID and Category.Category_ID="X") 

2. Show me all the books belong to one of Author. 
(Select * From Book, Author 
Where Book.Author_ID=Author.Author_ID and Author.Author_ID="Y") 

我是说我们有设计桌任何方式/模型跟随NoSQL仍然回应我以上两个查询?

我使用DynamoDB来存储数据库,难道我选错了吗?

我试试这个(我不能张贴图片):s6.postimg.org/z44997j0x/Basic_4.jpg

谢谢大家是给你宝贵的时间来阅读和帮助我!

回答

0

我猜你没有添加所有的属性到你的对象,如书籍有一个(或多个?)作者和一个或多个类别。

从您提出的问题中,不清楚您是否想要查询 a)准确地给VS一个类别给定一个类别X,给我所有具有此类别的书籍。

如果你编辑你的问题更精确,它会更容易回答。

无论如何,3年前我已经问过关于DynamoDB/NoSQL的similar noob question - 也许它也会对你有所帮助。

+0

谢谢陈哈雷尔,我被编辑了我的问题希望它更清楚,我已经读过你的链接,但是我的问题是我们有3个表关系在一起[作者] - (1 ------- n ) - [书] - (n ------- 1) - [类别]。 再次感谢您回答我的问题! – Gonc