5.2 NoSQL数据库

所有不符合上节所述的关系模型的数据库统称为 NoSQL 数据库。NoSQL 数据库一般使用集合代替表,使用文档代替记录。NoSQL 数据库采用的设计方式使联结变得困难,所以多数根本不支持这种操作。对于结构如图 5-1 所示的 NoSQL 数据库,若要列出各用户及其角色,需要在应用中执行联结操作,即先读取每个用户的 role_id,再在 roles 表中搜索对应的记录。

NoSQL 数据库更适合设计成如图 5-2 所示的结构。这是执行反规范化操作得到的结果,它减少了表的数量,却增加了数据重复量。

图 5-2:NoSQL 数据库示例

这种结构的数据库要把角色名存储在每个用户中。如此一来,重命名角色的操作就变得很耗时,可能需要更新大量文档。

使用 NoSQL 数据库当然也有好处。数据重复可以提升查询速度。列出用户及其角色的操作将很简单,因为无须联结。

《基于Python的Web应用开发实战(第二版)》

猜你喜欢

转载自www.cnblogs.com/hl001/p/10234214.html
5.2