database-design - Nosql 多对多

标签 database-design nosql

在文档数据库设计中处理多对多关系的公认模式是什么?

最佳答案

您希望如何对多对多进行建模取决于您要询问的查询类型、您希望如何更新数据等......假设我们有与多对多方式的 bar 相关的 foos。

您可以将 foo 建模为

{
   'bars': ['bar1', 'bar2', 'bar3']
}

并将酒吧建模为
{
   'foos': ['foo_x', 'foo_y', 'foo_z']
}

或者您可以将 foo 和 bar 之间的图形或关系建模为单独的文档本身
{
    from: 'foo1',
    to: 'bar1'
}

{
   from: 'foo1',
   to: 'bar2'
}

{  
   from: 'foo2',
   to: 'bar3
}

{
  from 'foo3',
  to: 'bar3'
}

还有很多其他的方法。你想怎么做取决于你想问的问题、你想要支持的操作、你想要高效的内容以及数据库中可用的索引。

关于database-design - Nosql 多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4612426/

相关文章:

php - 如何正确存储注册用户和大会其他参与者所需的信息? (方案 1 有效,但方案 2 和 3 无效)

regex - 方括号和星号作为 Redis 键中的 WildCards 字符或匹配扫描

mongodb - 存储数千个中型文档的最有效的面向文档的数据库引擎是什么?

SQL数据库设计

mysql - Buzzfeed 类测验的数据库设计

mysql - 单门类(class)排课数据库设计

nosql - Cassandra CQL3 使用复合主键从表中选择行键

mysql - 优化 "SQL Where Clause"的表设计

mysql - 使用两个不同的数据库来复制数据并根据适合每个数据库的数据以最高效的方式提供读取服务

php - 排名服务器实现 nosql 与 mysql 一起