mysql - 在mysql的列中存储多个值
问题描述
我正在尝试使用flutter/dart 和一个连接到mysql 数据库的rest-api web 服务来制作我的第一个应用程序。该应用程序应包含公司拥有的员工列表以及员工正在从事的项目列表。除此之外,项目列表还应该有另一个列表,显示正在从事该项目的员工。
起初我的想法:表员工:employee_id | 姓名 | 项目
但后来我意识到员工可以处理多个项目,我尝试在项目列中存储多个值,但这没有用。有人可以帮我解决这个问题吗?
我对mysql还很陌生,所以请尝试以一种对菜鸟友好的方式来解释它。谢谢!:D
解决方案
如何创建一个表名projects
,employer_projects
当您需要用户已加入的所有项目时,只需从表projects
JOIN 中查询表employer_projects
。employees
表employer_projects 将存储和之间的连接projects
;
雇员 <--> 雇主项目 <--> 项目
例子:
用employer_id查询一个employer_id的所有项目
SELECT * FROM projects p JOIN employer_projects ep ON p.id = ep.project_id WHERE ep.employer_id = ?
方便您以后搜索查询!
这是一些用于插入新记录的示例 sql(ID 是由 DB 自动递增的,对吗?)
添加新员工
INSERT INTO `employees`(`field_1`, `field_2`, `field_3`, ...) VALUES ('value 1', 'value 2', 'value 3', ...);
添加新项目
INSERT INTO `projects` (`name`) VALUES ('test');
添加新的employer_projects 连接
INSERT INTO `employer_projects` (`employer_id`, `project_id`) VALUES ('1', '2');
你在使用 PhpMyAdmin 吗?所有示例 sql 都将在选项卡中提供SQL
最后一件事。如果 DB 中的值和字段数据类型是 int,则不需要'
在值周围加上引号,例如'1'
,就可以了1
。
推荐阅读
- python - 有没有比我在 python 中更有效的重载运算符的方法?
- redirect - 将所有 http 请求重定向到 https 并将 index.php 附加到它
- javascript - 在Javascript中找到整数的最大素数
- scala - 数据集[Seq[(String, String, String)]] 到数据集[(String, String, String)]
- flask - 烧瓶表单未得到验证
- sql - PostgreSQL 中的方程只返回 0
- reactjs - 当我使用reactjs悬停时无法显示图标
- reactjs - react-jsonschema-form 自定义元素位置
- javascript - 使用javascript添加和删除伪元素
- python - 在按键上打开随机视频文件