【问题标题】:RavenDB questions: scope, querying, summary viewRavenDB 问题:范围、查询、摘要视图
【发布时间】:2012-12-19 09:07:40
【问题描述】:

我有一个使用 EF4 和 SQL Server 并托管在 AppHarbor 的现有网站。我需要制作一个独立版本,个人可以在没有 Internet 连接的情况下在本地运行。我正在考虑删除 SQL 并用 RavenDB 替换它。我认为数据结构很适合这一点。

从高层次来看,这就是结构

User
 - Elections
   - People
   - Locations
     - Ballots
       - Votes

网站的每个用户都可以创建多个“选举”。每次选举都是完全独立的,只有创建它的用户以及他们与之共享的任何“访客”用户知道。

以下是一些我尚未找到答案的问题:

  1. 如何隔离仅访问当前选定的“选举”?每个 linq 语句是否需要包含一个“where”子句来限制选举范围,或者我可以让选举“加载”并在“内部”工作?我必须使用db.Query<Person>().Where(p=>p.Election==currentElection) 还是可以使用election.Query<Person>() 之类的东西?

  2. 每个人最多有六个字段:“Firstname”、“LastName”、“OtherNames”、“ExtraInfo”等,我想在其中搜索。我需要频繁快速地搜索每个人在所有这些领域寻找部分匹配的选举。我也想要“soundex”类型的匹配。索引会有用吗,还是我只是使用“蛮力”并遍历所有人?如果有 50,000 人参加选举,我可以得到亚秒级的响应吗?

  3. 如何构建文档以便每个用户都可以获取和使用他们的选举列表?查看他们的选举列表时,我想显示每次选举的摘要信息。应该将其“预存储”在用户对象中吗?或者,在显示列表时,我是否必须加载每个选举的部分内容以获取详细信息(例如人数、选举的某些属性等)。

感谢您提供的任何帮助!

【问题讨论】:

    标签: ravendb


    【解决方案1】:

    1) 是的,您需要添加 where 子句。如果您添加自己的扩展方法,您可以使用election.Query<Person>()。 2)您想使用索引。你会得到这样的速度和更多。您可能想了解订单搜索:http://ayende.com/blog/152833/orders-search-in-ravendb 3)您可以查询或存储它,具体取决于太多因素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多