假设我有以下两种模式( URL , User )在NoSQL数据库中:
URL
User
URL(url_id (key), url_text, user_id, ...) User(user_id (key), user_name, user_password, ...)
我已经在上创建了索引 user_name 在里面 使用者 和 user_id 在里面 统一资源定位地址 .现在我想获得 url_text 给予 用户名 这是一个 阅读沉重 系统
user_name
使用者
user_id
统一资源定位地址
url_text
用户名
我可以考虑两种选择:
aggregation
User.find({user_name: some_name})
用户id
URL.find({user_id: some_id})
最佳做法是什么?或者在做出决定时我应该考虑什么样的权衡?
因为它是nosql,所以可以通过添加 user_name 在 URL 收集
但是,如果您的系统比问题中显示的更复杂,您可以选择选项1(聚合查询),使用所述的标准化模型 here
由于额外的网络延迟,我不喜欢第二种选择。