node.js的文档是sequelize索引查找

时间:2013-11-05 06:22:26

标签: postgresql sequelize.js

我无法使用sequelize / postgres为node.js查找有关如何通过索引查找记录的信息。

索引的唯一文档似乎在此处:http://sequelizejs.com/documentation#migrations-functions

为了说明我的要求,让我们采用一个简单的模型,其中有人,有人,项目和任务。每个人都参考了许多分配的任务,每个项目都有许多分配的任务。每个任务都有对项目和人员的反向引用。我们假设每个人每个项目只有一个任务。

假设我有一个人和项目,我需要找到是否有关联的任务。我已经尝试通过人/项目任务的索引来实现这一点。

我通过搜索找到了你也可以通过稍微不直观的语法创建索引:

        global.db.sequelize.getQueryInterface().addIndex('Tasks',
        ['ProjectId', 'PersonId'],
        {
            indexName: 'IndexName',
            indicesType: 'UNIQUE'
        }

这似乎有效,并且创建了索引。但是,我无法在文档中找到任何参考,甚至在互联网上找不到如何使用此索引来查找任务的参考。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您对RDBMS应该如何工作存在根本性的误解。

应该根据所需的数据库访问模式为每个查询选择最佳索引。这是由RDBMS中的“planner”执行的。

在使用PostgreSQL时,您会发现一些有用的搜索条件:  - 首要的关键   - 外键   - 约束(以上都是这些)   - EXPLAIN ANALYZE(或分析,取决于您的英语方言)   - http://explain.depesz.com/ - 一个有用的网站,为上面的解释着色   - pg_dump / pg_restore - 确保您可以使用这些工具备份数据库

最后,自己做一杯热茶或咖啡,然后坐下来,至少浏览一下PostgreSQL手册。至少它会让你知道在哪里可以找到更多的信息。

祝你好运!

答案 1 :(得分:0)

是的,我来自Cache的数据库结构,实际上很少有人使用它。

我认为问题的最佳答案是你只是正常进行查找,而PostgreSQL负责其余的工作。很高兴知道!