在我们的应用程序中,我们有用户,用户可以有朋友(想想 Facebook,关系是双向的)。我们希望能够:
按名称或用户名在站点范围内搜索用户
允许每个用户按姓名或用户名搜索她的朋友
设计这个的最佳方法是什么,请记住:
一个用户最多可以有 50,000 个朋友。
用户可以随时更改他们的姓名和用户名
在我们的应用程序中,我们有用户,用户可以有朋友(想想 Facebook,关系是双向的)。我们希望能够:
按名称或用户名在站点范围内搜索用户
允许每个用户按姓名或用户名搜索她的朋友
设计这个的最佳方法是什么,请记住:
一个用户最多可以有 50,000 个朋友。
用户可以随时更改他们的姓名和用户名
有如下文件:
type:friendship
parties_name:[mark zuckerburg, bill gates]
parties_id:[1, 753634] (what if many people are named bill gates)
因此,您的网络中的每个友谊都会有一个这样的行,并且当我们的特定mark zuckerburg
更新他的友谊(和姓名)时,parties_id:1
必须重新索引所有行。