[讨论]SQL表字段问题

贪玩的老鼠 2008-12-24 11:04:43
A表存放员工信息(员工ID,名字,……)
B表记录一个模具信息(包含编号,模号,生产厂长,跟模主任,跟模者,产品设计者……)
其中生产厂长,跟模主任,跟模者,产品设计者都可以在员工信息表中的数据。
现在要讨论的问题是生产厂长,跟模主任,跟模者,产品设计者是设置字符串,
还是要设置员工ID,如果设置员工ID,查信模具信息需要跟A表连接4次,
而用字符串,不能保证数据的完整性
...全文
78 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
srgcc 2008-12-25
  • 打赏
  • 举报
回复
jian yi yong ID.


ru guo dao zhi su du zheng de hen man de hua ye ke yi kao lv yong xing ming, yao gen ju ni shi ji qing kuang lai.



贪玩的老鼠 2008-12-25
  • 打赏
  • 举报
回复
设置设置ID
select b.编号,
b.模号,
生产厂长姓名 = (select 名字 from A where 员工id = b.生产厂长ID),
跟模主任姓名 = (select 名字 from A where 员工id = b.跟模主任ID),
跟模者姓名 = (select 名字 from A where 员工id = b.跟模者ID),
产品设计者姓名 = (select 名字 from A where 员工id = b.产品设计者ID)
from B

查询B表信息的时候,连接这么多次A表的话,觉得挺别扭的话,而且当数据增加的话,速度会变的很
msf108 2008-12-25
  • 打赏
  • 举报
回复
这样的查询对速度没多大影响
SELECT B.编号, A.姓名 AS 厂长, A_1.姓名 AS 主任, A_2.姓名 AS 设计
FROM A AS A_2 INNER JOIN (A AS A_1 INNER JOIN (A INNER JOIN B ON A.编号 = B.厂长) ON A_1.编号 = B.主任) ON A_2.编号 = B.设计;
msf108 2008-12-25
  • 打赏
  • 举报
回复
根据实际需要,如果不需要根据B表里的人员查询其他信息的话用名字就可以,否则一定要用ID,可以避免重名,查询效率也高。看样子你的是工厂管理系统,所以最好用ID。
cyz9977 2008-12-24
  • 打赏
  • 举报
回复
join
wsh236 2008-12-24
  • 打赏
  • 举报
回复
设置ID吧
-狙击手- 2008-12-24
  • 打赏
  • 举报
回复
员工ID
dawugui 2008-12-24
  • 打赏
  • 举报
回复
select b.编号,
b.模号,
生产厂长姓名 = (select 名字 from A where 员工id = b.生产厂长ID),
跟模主任姓名 = (select 名字 from A where 员工id = b.跟模主任ID),
跟模者姓名 = (select 名字 from A where 员工id = b.跟模者ID),
产品设计者姓名 = (select 名字 from A where 员工id = b.产品设计者ID)
from B

dawugui 2008-12-24
  • 打赏
  • 举报
回复
设置员工ID
zdy420226 2008-12-24
  • 打赏
  • 举报
回复
员工ID
rucypli 2008-12-24
  • 打赏
  • 举报
回复
设置字符串
通用管理框架正式版1.1源码 更新内容: 编译已有代码,建立测试服务器虚拟目录,上传编译文件,初始化角色信息,整理开会讨论的个性模块变动和需求 编写获取页面标题函数,编写页面模块导航函数 弹出消息框代码编写 设计发送/接收消息模块的数据结构 编写生成数据列和分页函数 发送/接收消息模块的数据层,业务逻辑层,现层和js代码的编写,根据最新需求修改编目参数模块 调整新数据结构和默认数据到测试服务器,上传新功能模块部分到测试服务器,外借参数设置模块数据层,逻辑层和现层以及js代码的编写 编写多查询,多字段排序的存储过程. 馆员登记各层代码 馆员权限设置 将菜单移至公共数据库LIBPUBCL ============================================================================================================== IBatisNet: IBatis.Net就是一个比较易用的ORM框架,使用起来较为方便、灵活。IBatis.Net是从Ibatis的Java版本移植过来的.NET版本。iBATIS作 为一种独特的Data Mapper,使用SQL映射的方式将对象持久化至关系型数据库。简单的理解就是它将我们在数据访问层实现的C#逻辑代码,变为通过 关系数据库与对象的映射,将SQL逻辑放到外部的XML配置文件中,以方便以后的维护。 这个框架有两个主要的组成部分,一个是SQL Maps,另一个是 Data Access Objects。Sql Maps是这个框架的核心部分,通过使用Sql Maps你可以显著的节约数据库操作的代码量。SQL Maps使用一个简单的XML文 件来实现从实体到SQL statements的映射。使用DAO,封装了对数据的访问,你可以动态配置你的应用程序来访问不同的实体存储机制。隐藏持久性层 实现的细节,Data Access Objects允许你通过一个简单接口的来操作数据。 系统功能说明 程序管理: 管理系统菜单数据,并对程序模块的权限进行定义,例如新增,编辑,审核等等操作的权限 缓存管理: 管理系缓存数据,当系统中缓存的数据有变化时,需要清除缓存并重新生成 日志管理: 登记用户操作系统的日志 角色管理: 管理系统角色信息,并可以对角色进行授权 用户管理: 管理系统用户信息,并可以定义用户所属的角色,部门,岗位,一个用户可以选择多个角色 部门管理: 管理系统部门信息 岗位管理: 管理系统岗位 在线用户: 查看当前登录系统的用户 参考界面: 代码生成器: 主界面: XML界面: 数据层界面: 业务层界面:
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧