繁体   English   中英

为社交网络建模天蓝色表存储的有效方法

[英]Efficient way to model azure table storage for social networking

我在SQL Server中有这样的表

用户数

  • UserId(唯一)
  • 名称
  • 年龄

友人

  • 用户身份
  • 朋友编号

主题

  • 用户身份
  • 学科

可以有数千个用户。 表格中还有其他几个属性。

我可以查询以获得以下答案。

  1. 给我所有用户“ Tom”的朋友。
  2. 给我“汤姆”创建的所有主题。
  3. 给我所有由汤姆的朋友创建的主题,主题中包含“ abc”。

如果要在Azure表存储中执行此操作,该如何构造表? 我已经经历了这一点 ,在我想向在Azure表存储建模方面有更多经验的人提供一些见解。

1和2非常简单。 您创建两个Azure表-通过用户ID(密钥中的用户ID)建立索引的“朋友”和“主题”。

使用Azure表,尤其是“在主题中包含'abc'的那一部分,第3个困难得多。

Azure表不支持全文搜索。 基本上,只能使用精确键或使用'startswith'运算符来有效地检索值(或值的范围)。 就像“给我所有键等于'键值'的记录”。 或“给我所有键大于“键下限”且小于“键上限”的记录”。

也可以通过记录的任何非关键字段使用“ startswith”进行过滤,但这将涉及表扫描并且效率不高。 无法对“包含”执行类似的过滤。

因此,我认为您需要在此处提供全文搜索支持的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM