我有一个表单php页面,它发送有关作业的信息。每个user
都可以注册无限制的作业,因此我的数据库中需要一个灵活的表,当user
插入新的job
时,表格将获取值并将信息保存为{{1} },job 1
... job 2
。
有办法还是简单方法?
答案 0 :(得分:1)
只是扩展我的评论:
这里最好的选择是用户表:
user_id | name | other | attributes | for | a | user | like | birthdate
用户与工作的关系的单独表格
user_id | job_id
如果您需要存储有关作业的信息,请在另一个表中进行
job_id | job_name | other | attributes | for | a | job
现在,您的数据库架构不必在新数据进入时动态更改。唯一增长的是您的记录数。这是正确的数据库设计。您可以查询与用户关联的所有作业名称:
SELECT user.name, job.job_name
FROM user
INNER JOIN user_job ON user.user_id = user_job.user_id
INNER JOIN job ON user_job.job_id = job.job_id
WHERE user.user_id = 123
随着新数据的进入,您的架构发生变化的方向将导致您噩梦般的场景,应该不惜一切代价避免。例如,想象一下当新数据进入时作业列数增加的同一查询:
SELECT user.name, user.job1, user.job2, user.job3... how do I know where to stop for this user?
FROM user
WHERE user_id = 123