首页 > 解决方案 > 在mysql的列中存储多个值

问题描述

我正在尝试使用flutter/dart 和一个连接到mysql 数据库的rest-api web 服务来制作我的第一个应用程序。该应用程序应包含公司拥有的员工列表以及员工正在从事的项目列表。除此之外,项目列表还应该有另一个列表,显示正在从事该项目的员工。

起初我的想法:表员工:employee_id | 姓名 | 项目

但后来我意识到员工可以处理多个项目,我尝试在项目列中存储多个值,但这没有用。有人可以帮我解决这个问题吗?

我对mysql还很陌生,所以请尝试以一种对菜鸟友好的方式来解释它。谢谢!:D

标签: mysqldatabase

解决方案


如何创建一个表名projectsemployer_projects当您需要用户已加入的所有项目时,只需从表projectsJOIN 中查询表employer_projectsemployees表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


推荐阅读