首页 / MYSQL / mysql建表字段的设置问题
mysql建表字段的设置问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql建表字段的设置问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1852字,纯文字阅读大概需要3分钟。
内容图文
![mysql建表字段的设置问题](/upload/InfoBanner/zyjiaocheng/242/152f68f17d754f43b7e298a4263d9a10.jpg)
另一个是人的信息表 字段为 id,sid,info其中sid是链接两个表的字段sid=技能表中的id
现在问题是每个人不一定有一个技能 每个人的sid中可能有好几个数 我用什么办法可以读取每个人的技能信息
回复内容:
我想建个技能表 表的字段为 id , skill
另一个是人的信息表 字段为 id,sid,info其中sid是链接两个表的字段sid=技能表中的id
现在问题是每个人不一定有一个技能 每个人的sid中可能有好几个数 我用什么办法可以读取每个人的技能信息
技能表k,人物表p
select ta.*,tb.skill from p as ta left join k as tb on ta.sid=tb.id;
你还少张表啊
多对多关系,建议建多张关系表,比如relation
字段可以设置为sid,跟用户id,假设为uid
那么
select uid from relation where sid='xxx'
是拥有某个技能的人
select sid from relation where uid='xxx'
为某个人拥有的技能
当然要再读取适当联表信息
在加一张关系表就行了,用户表把sid去掉
这是一对多的问题
人表(t_user)
id , username
人 技能 关联表(user_skill)
id user_id skill_id
技能表(skill)
id,skill
SELECT
t_user.id,
t_user.username,
skill.id,
skill.skill
FROM
t_user
LEFT JOIN user_skill ON t_user.id = user_skill.user_id
LEFT JOIN skill ON skill.id = user_skill.skill_id
where t_user.id = '1' -- 差找用户id为1 的技能列表
用户信息表:info
用户技能表:jineng
思路:通过PHP先取出某用户的sid,然后通过字符串切割成数组的方式得到多技能用户的每个技能对应的sid,最后拼接sql语句。
要求:在info表中保存多个sid时需要用指定符号分开,例如:1;2;3;4
PHP:(这边以分号分割sid)
function user_skill($id){
$sid=mysql_fetch_assoc(mysql_query("select * from info where id=$id"))['sid'];
$arr=explode(';',$sid);
$sql="select skill from jineng where id in(";
foreach ($arr as $v)
{
$sql.=$v.',';
}
$sql=substr($sql,0,strlen($sql)-1);
$query=mysql_query($sql);
// while循环便可输出所有的id为$id的用户的所有技能
}
1、技能表
2、用户信息表
一个用户可以有多项技能,但某一项技能可以被多个用户所应有!所以技能表和用户信息表之间的关系是多对多。
既然是多对多关系,那么就需要一张中间表(用户技能表)
内容总结
以上是互联网集市为您收集整理的mysql建表字段的设置问题全部内容,希望文章能够帮你解决mysql建表字段的设置问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。