php - 如何在不更新或创建新行的情况下向同一用户添加更多数据?
问题描述
假设在数据库中我有下表:
表 - 工人
具有以下字段
- 姓名
- 起源
- 目的地
- 日期
- worker_id (PK)(AI)
我在这里要做的是让我们假设第一个用户有超过 1 条记录 origin
,destinations
并date
填写。
所以基本上,假设我有用户“Mike”,我想插入几个"origin"
和"destination"
和"date"
信息,而不是总是在要显示数据的表上重复他的名字。
我在这里需要的是单个"worker_id"
(假设 worker_id 为 1)在每个字段上拥有超过 1 个单个信息。
我尝试了以下查询(仅使用 origin 字段进行测试):
"INSERT INTO workers(origin) SELECT FROM workers WHERE worker_id ='$worker_id'";
我想最终得到的是这样的:
Worker ID - 1 Origin - Brazil
Worker ID - 1 Origin - Japan
Worker ID - 1 Origin - Australia
如果只是我的逻辑思维是错误的,那么如果有人能以正确的方式指出我,我将不胜感激。对于一个 ID,具有单个字段的多个信息。
解决方案
最简单的解决方案是规范化数据库模式。在您的情况下,这意味着下表(我假设出发地和目的地是某种旅行日志数据)。
用户
id
name
旅游日志
id
worker_id
origin
destination
date
然后你会加入他们以获得你想要的(提到的)数据:
SELECT u.id, u.name, t.origin, t.destination, t.date
FROM user u
JOIN travel_log t ON u.id = t.worker_id
希望有帮助。