MyException - 我的异常网
当前位置:我的异常网» Sql Server » 诸如职务,职称,学历这类信息,当存到员工档案表中

诸如职务,职称,学历这类信息,当存到员工档案表中时,是存名称好呀,还是建一个对照表,在员工信息表中存编码呀。解决办法

www.MyException.Cn  网友分享于:2015-08-26  浏览:63次
诸如职务,职称,学历这类信息,当存到员工档案表中时,是存名称好呀,还是建一个对照表,在员工信息表中存编码呀。
诸如职务,职称,学历这类信息,当存到员工档案表中时,是存名称好呀,还是建一个对照表,在员工信息表中存编码呀。
------------------
比如存名称,比较好设计:
结构如:
编号,姓名,职务,职称,学历
001,张三,科长,工程师,大本
002,王二,处长,技师,中专

比如存编码,设计复杂些。先要建对照表:以学历对照表举例
学历对照表:
01,中专
02,大专
03,大本
则上面表如下显示(这里只将学历字段显示)
编号,姓名,职务,职称,学历
001,张三,XX,XX,03
002,王二,XX,XX,01

不知以上设计思路,哪种更好些。
规范的设计原则是什么?

------解决方案--------------------
对照表好点
------解决方案--------------------
如果员工档案表数据量不大,可以建名称,
如果数据量巨大,建议采对照表方法
------解决方案--------------------
映射表最好!
------解决方案--------------------
個人建議用對照表
------解决方案--------------------
看到很多商用软件,其实好多类似信息也是不存编码的,直接存名称.即不建楼主所说的对照表
------解决方案--------------------
个人倾向于怎么简单怎么来。毕竟现在服务器性能在多数情况下已不需要在这方面去斤斤计较了。
------解决方案--------------------
第一种方法便捷,简单,直接存名称,保存、查询起来相对方面。
缺点:如果职务中的“科长”根据客户的需要要改为“主管”,那操作人员需要对每一条记录进行修改保存,如果数据量大的话,呵呵,有的改了。

第二种用对照表,每次查询都要 JOIN每个对照表,比较累点,但是可以解决第一种建立的视图的缺点。
------解决方案--------------------
数量少,建议用参照表,这样用户输入也方便,点下鼠标就行了。
------解决方案--------------------
如果数据量是百万级的建议这样用(曾经参加过一个百万级的项目):
用对照表 但实际一个对照表就足够了
例:t_user表 username,usersexid,userpostid
张三 0 0
李四 1 1
t_code表 id(自增序列)flag(类型) codeid(具体类型值) meaning(含义)
0 1 0 男
1 1 1 女
2 2 0 科长
3 2 1 处长

在sql 2000 中编写一个函数

--根据类型值和codeid得到 相应的中文含义
CREATE FUNCTION F_GetMeaning
(
@flagid nvarchar(30),
@CodeID nvarchar(30)
)
RETURNS varchar(500)AS
BEGIN
DECLARE @Result varchar(1000)
SET @Result = ' '
SELECT @Result = meaning from t_code where flag= @flagid and codeid = @CodeID
RETURN @Result
END

查询语句:select username as 姓名,dbo.F_GetMeaning(1,usersexid) as 性别,dbo.F_GetMeaning(2,userpostid) as 职位 from t_user
查询结果:姓名 性别 职位
张三 男 科长
李四 女 处长

这样写有个好处就是 即使以后科长改成主任了 你只需要改t_code表就可以了。



------解决方案--------------------
查询语句:select username as 姓名,dbo.F_GetMeaning(1,usersexid) as 性别,dbo.F_GetMeaning(2,userpostid) as 职位 from t_user
查询结果:姓名 性别 职位
张三 男 科长
李四 女 处长

这样写有个好处就是 即使以后科长改成主任了 你只需要改t_code表就可以了。
-----------------------
这样写的好处是代码简洁,不用进行多次连接操作了.可是不知这样做的效率如何?
我觉得这样可能效率会比较低,不知楼上朋友如何看,呵.

------解决方案--------------------
对照表好些...以后加新元素..或改也方便
------解决方案--------------------
看来大我建义用对照表,可是这样的话,每次查询时都要进行若干次连接操作呀,如:
select a.编号,a.姓名,a.学历编码,b.学历名称,a.职称编码,c.职称名称,a.职务编码,d.职务名称
from 员工表 a left join 学历表 b on (a.学历编码=b.学业历编码)
left join 职称表 c on(a.职称编码=c.职称编码)
left join 职务表 d on (a.职务编码=d.职务编码)

大家看,仅显示三个字段就要连接三个对照表呀。如果表中有几十个字段就要连接几十个对照表呀。
所以总觉得这种设计还是有问题的。大家请指教。

===========================================

文章评论

十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
 程序员的样子
程序员的样子
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
程序员必看的十大电影
程序员必看的十大电影
每天工作4小时的程序员
每天工作4小时的程序员
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
老程序员的下场
老程序员的下场
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
为什么程序员都是夜猫子
为什么程序员都是夜猫子
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
编程语言是女人
编程语言是女人
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
Java程序员必看电影
Java程序员必看电影
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
10个调试和排错的小建议
10个调试和排错的小建议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
中美印日四国程序员比较
中美印日四国程序员比较
我是如何打败拖延症的
我是如何打败拖延症的
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员都该阅读的书
程序员都该阅读的书
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员的鄙视链
程序员的鄙视链
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
总结2014中国互联网十大段子
总结2014中国互联网十大段子
鲜为人知的编程真相
鲜为人知的编程真相
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
漫画:程序员的工作
漫画:程序员的工作
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
旅行,写作,编程
旅行,写作,编程
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有