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

时间:2012-12-31 06:39:14

标签: nosql azure-table-storage

我在SQL Server中有这样的表

用户

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

  • 用户ID
  • FriendId

主题

  • 用户ID
  • 主题

可能有数千名用户。并且表中还有其他几个属性。

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

  1. 给我所有用户“Tom”的朋友。
  2. 给我“汤姆”创建的所有主题。
  3. 向我提供Tom的朋友创建的所有主题,其中包含主题中的“abc”。
  4. 如果我在Azure表存储中执行此操作,如何构建表? 我已经完成了thisthis我希望有更多有关Azure Table存储建模经验的人能够提供一些见解。

1 个答案:

答案 0 :(得分:0)

1和2很容易。您创建两个Azure表 - 按用户ID索引的好友和主题(在密钥中使用用户ID)。

第三个使用Azure表格要困难得多,尤其是“在主题中包含'abc'”部分。

Azure表不支持全文搜索。基本上,只能使用精确键或使用'startswith'运算符来有效地检索值(或值的范围)。比如“给我所有关键等于'关键值'的记录”。或者“给我所有记录,其中键比'关键下限'更重要,并且小于'键上限'”。

也可以使用记录的任何非关键字段使用“startswith”进行过滤,但这将涉及表扫描并且效率不高。使用'contains'进行类似的过滤是不可能的。

所以我认为你需要一些全文搜索支持。

相关问题