javascript - 如何组织用于比较表的数据库,在创建后生成主索引?(JS + Node + MySQL + 续集)
问题描述
我会尽量简单地解释它,想象一下表格是这样的:
从事项目 X
ID | 姓名 |
---|---|
157 | 担 |
234 | 本 |
276 | 杰斯 |
从事Z项目:
ID | 姓名 |
---|---|
157 | 丹尼 |
567 | 富兰克林 |
工人指数:
ID | 姓名 |
---|---|
157 | 丹尼尔 |
234 | 本杰明 |
276 | 杰西卡 |
375 | 阿诺德 |
567 | 坦率 |
我想从主索引开始查询以获得类似
ID | 姓名 | 项目 X 上的名称 | Z项目的名字 |
---|---|---|---|
157 | 丹尼尔 | 担 | 丹尼 |
234 | 本杰明 | 本 | 无效的 |
567 | 坦率 | 无效的 | 富兰克林 |
现在我可以使用 LEFT JOIN 使其工作,但我不知道如何在这里实现一些数据完整性,并使用 sequelize 使其变得简单。主要问题是主索引是在创建项目之后创建的。它看起来像这样:
- 创建项目表(没有工人 ID)。
- 生成工人 ID
- 通过遍历所有表创建一个主索引。
- 根据主索引中的 ID 进行查询,根据 ID 知道哪个工人在做哪个项目。
有没有办法创建这些连接?我将如何根据这个数据库进行查询?
编辑:搜索时我使用的是 ID 数组
解决方案
首先,让我们列出所需的表格:
workers
: with real name and worker_id
for the PRIMARY KEY
projects
: with project_id
, etc
w_p
: 多对多映射表,worker_id
and nickname
and and project_id
;PRIMARY KEY(project_id, worker_id), INDEX(worker_id, project_id)
现在在所需的SELECT
.
推荐阅读
- python - 在 Python 中,如何弹出列表的前 n 个元素并将它们附加到新列表中?
- substring - 在 logstash 配置过滤器中删除部分消息字符串 BEFORE 和 AFTER
- pandas - 无法安全地为第 1 列中的对象 dtyped 数据转换传递的 float64 dtype
- php - php添加数组使结果为空
- python - 如何将任何文件路径作为命令行参数从一个程序传递给 Python 中的另一个程序?
- android - 错误:[Dagger/MissingBinding] 地图
, 提供者 > 如果没有 @Provides-annotated 方法,则无法提供 - botframework - 自适应卡片列样式在 Adaptive Designer 中有效,但在 WebChat 中无效
- symfony - 安装friendsofsymfony/user-bundle和friendsofsymfony/oauth-server-bundle时出错
- flutter - 无法从卡中删除填充
- latex - 未找到 lualatex 文件 luabidi.sty。我必须把它放在哪里?