我无法使用sequelize / postgres为node.js查找有关如何通过索引查找记录的信息。
索引的唯一文档似乎在此处:http://sequelizejs.com/documentation#migrations-functions
为了说明我的要求,让我们采用一个简单的模型,其中有人,有人,项目和任务。每个人都参考了许多分配的任务,每个项目都有许多分配的任务。每个任务都有对项目和人员的反向引用。我们假设每个人每个项目只有一个任务。
假设我有一个人和项目,我需要找到是否有关联的任务。我已经尝试通过人/项目任务的索引来实现这一点。
我通过搜索找到了你也可以通过稍微不直观的语法创建索引:
global.db.sequelize.getQueryInterface().addIndex('Tasks',
['ProjectId', 'PersonId'],
{
indexName: 'IndexName',
indicesType: 'UNIQUE'
}
这似乎有效,并且创建了索引。但是,我无法在文档中找到任何参考,甚至在互联网上找不到如何使用此索引来查找任务的参考。
有什么建议吗?
答案 0 :(得分:1)
您对RDBMS应该如何工作存在根本性的误解。
应该根据所需的数据库访问模式为每个查询选择最佳索引。这是由RDBMS中的“planner”执行的。
在使用PostgreSQL时,您会发现一些有用的搜索条件: - 首要的关键 - 外键 - 约束(以上都是这些) - EXPLAIN ANALYZE(或分析,取决于您的英语方言) - http://explain.depesz.com/ - 一个有用的网站,为上面的解释着色 - pg_dump / pg_restore - 确保您可以使用这些工具备份数据库
最后,自己做一杯热茶或咖啡,然后坐下来,至少浏览一下PostgreSQL手册。至少它会让你知道在哪里可以找到更多的信息。
祝你好运!
答案 1 :(得分:0)
是的,我来自Cache的数据库结构,实际上很少有人使用它。
我认为问题的最佳答案是你只是正常进行查找,而PostgreSQL负责其余的工作。很高兴知道!