postgresql nosql sqlalchemy的使用

2015-05-06

postgresql nosql sqlalchemy的使用

一直想要使用nosql,但是发现自己没有使用场景,于是就没做太多的练习,闲来无事试试这个折腾一下自己

在postgresql 9.4 版本上加入了nosql属性,可以支持jsonb(我也不懂,仅仅知道是json格式)。

在sqlalchemy 1.0版本中也加入了对postgresql nosql属性的支持,不过个人感觉自己写的nosql感觉和 sql没什么区别了,同样是使用唯一键值对应,不过就是将数据表的列去掉了,现在的感觉仅仅需要两列,就能完 成自己想要的东西,唯一主键和json数据

个人理解中的nosql和sql

sql,举例来说,这个用户有username,password,id 这些固定的属性,注册的网站的用户都有这些属性, 每个用户唯一对应,当这个用户成长一段时间之后,他有了自己的关注者,建立一张关注对应表,如果产生关注 关系,我们就把用户的信息放到关注表中,这样用户的关注关系就会很明确,这些信息会伴随着用户的整个存在 周期

突然我们要举办一个活动,这个活动个个别用户有关,或者仅仅和网站有关,这时我们同样可以建立一 个数据表,将需要的所有东西全部建立成为一一对应的关系,这次活动结束之后,这时我们可能仅仅需要一个统计 结果,数据之类的东西可能就以后几乎不会用到,每次活动的形式被复用的可能性极小,这样就会导致最终出现无 数的杂乱的数据表,比如 table1,table2,table3,直到有一天出现自己都不知道具体是什么东西了,因为 在传统数据库中,线上环境删除数据表,这种行为还是要不得的

这个时候我们nosql,可以帮助我们解决这些问题,现在我们重新设计活动,应用举办了一个活动A,有几百个用 户参与了这个活动,就把这几百个用户id信息存一下,用到的统计资料存一下,将数据信息放到以id为key,活动 统计信息为value的json串中,下次再开一个活动,继续这样使用,这个用户参加活动,我们直接写入到nosql中, 参加多次活动,我们就给他的value加上多次活动的信息,这样最终的到的结果是设计最简单的,但是key/value 的查找方式是最快的。

下面是postgresql nosql sqlalchemy代码实例: