3

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

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

为了说明我在问什么,让我们采用一个简单的模型,其中有一个人,有 Persons、Projects 和 Tasks。每个人都引用了许多分配的任务,每个项目都有许多分配的任务。每个任务都有一个对项目和人员的反向引用。我们假设每个人每个项目只有一项任务。

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

我通过搜索发现,您还可以通过稍微不直观的语法创建索引:

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

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

有什么建议么?

4

2 回答 2

1

您对 RDBMS 应该如何工作有一个基本的误解。

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

当您使用 PostgreSQL 时,您会发现一些有用的搜索词:-主键-外键-约束(以上都是这些)-解释分析(或根据您的英语方言进行分析)-http://explain.depesz .com/ - 为上述说明着色的有用站点 - pg_dump / pg_restore - 确保您可以使用这些工具来备份数据库

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

祝你好运!

于 2013-11-05T07:09:58.607 回答
0

没错,我来自 Cache 的数据库结构,很少有人真正使用它。

我认为这个问题的最佳答案是您只需照常进行查找,其余的由 PostgreSQL 负责。很高兴知道!

于 2013-11-06T09:43:25.570 回答