代码之家  ›  专栏  ›  技术社区  ›  noobie2023

从NoSQL数据库中的两个(或多个)模式查询数据的最佳实践

  •  0
  • noobie2023  · 技术社区  · 5 年前

    假设我有以下两种模式( URL , User )在NoSQL数据库中:

    URL(url_id (key), url_text, user_id, ...)
    User(user_id (key), user_name, user_password, ...)
    

    我已经在上创建了索引 user_name 在里面 使用者 user_id 在里面 统一资源定位地址 .现在我想获得 url_text 给予 用户名 这是一个 阅读沉重 系统

    我可以考虑两种选择:

    1. 我使用 aggregation 数据库中连接这两个模式的功能。
    2. 我使用编程语言两次查询数据库以获得结果(例如调用 User.find({user_name: some_name}) 并存储结果 用户id 作为输入 URL.find({user_id: some_id}) )

    最佳做法是什么?或者在做出决定时我应该考虑什么样的权衡?

    0 回复  |  直到 5 年前
        1
  •  1
  •   Gibbs    5 年前

    因为它是nosql,所以可以通过添加 user_name URL 收集

    但是,如果您的系统比问题中显示的更复杂,您可以选择选项1(聚合查询),使用所述的标准化模型 here

    由于额外的网络延迟,我不喜欢第二种选择。