以 noSQL 方式使用关系数据库的优缺点是什么?
说 noSQL,我的意思是键值存储,带有一些相当简单的查询语言和水平扩展。
现在做一个简单的实验,postgreSQL数据库以key-value的方式设计和查询。这是示例。让它成为用户和文章,关系模型中的一对多。
关系:
User Article
| id | login | | id | user_id | title |
|----+-------| |----+---------+-------|
| 1 | Alex | | 1 | 1 | FooBar|
| 2 | Ann | | 2 | 1 | GoGoGo|
-------------- ------------------------
and some constraints on user id
要获取所有用户的文章,我们需要某种连接。
键值样式:
User Article
| id | login | articles | | id | user_id | title |
|----|-------|----------| |----+---------+-------|
| 1 | Alex | 1, 2 | | 1 | 1 | FooBar|
| 2 | Ann | | | 2 | 1 | GoGoGo|
------------------------- ------------------------
让 User.articles 为数组,例如,postgreSQL 有一些处理数组的工具。
在这种情况下,我将首先进行用户查询,然后在获取文章 ID 时将它们全部选中。我认为这与 MongdDB 的集合方式非常相似。
此外,我知道,第二种情况是我的大学导师从未说过要做的事情,但看起来这种方法非常非常可扩展。
它看起来像轮子改造,但主要目标是为一些现在使用 postgres 的有前途的项目提供可扩展的解决方案。