mysql建表字段的设置问题
我想建个技能表 表的字段为 id , skill
另一个是人的信息表 字段为 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
那么
<code>select uid from relation where sid='xxx' </code>
是拥有某个技能的人
<code>select sid from relation where uid='xxx' </code>
为某个人拥有的技能
当然要再读取适当联表信息
在加一张关系表就行了,用户表把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){
<code>$sid=mysql_fetch_assoc(mysql_query("select * from info where id=$id"))['sid'];</code>
$arr=explode(';',$sid);
$sql="select skill from jineng where id in(";
foreach ($arr as $v)
{
<code>$sql.=$v.',';</code>
}
$sql=substr($sql,0,strlen($sql)-1);
$query=mysql_query($sql);
// while循环便可输出所有的id为$id的用户的所有技能
}
1、技能表
2、用户信息表
一个用户可以有多项技能,但某一项技能可以被多个用户所应有!所以技能表和用户信息表之间的关系是多对多。
既然是多对多关系,那么就需要一张中间表(用户技能表)

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

Apache 连接数据库需要以下步骤:安装数据库驱动程序。配置 web.xml 文件以创建连接池。创建 JDBC 数据源,指定连接设置。从 Java 代码中使用 JDBC API 访问数据库,包括获取连接、创建语句、绑定参数、执行查询或更新以及处理结果。

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

在 Docker 中启动 MySQL 的过程包含以下步骤:拉取 MySQL 镜像创建并启动容器,设置根用户密码并映射端口验证连接创建数据库和用户授予对数据库的所有权限
