两个小问题! 大家给点意见.

IEQQ 2006-04-12 03:05:37

我们数据库设计人员设计数据库的时候.
比如数据库中有个 "班次"字段 有"早班, 中班, 晚班"三个选择 ,
有两种方案:
1. 把"班次"定成 int 型,
我们在页面上显示的时候, 遇到 1, 就转换成 "早班" ,遇到 2, 就换成"中班" , 遇到 3 , 就转换成"晚班".

2 直接把"班次"定成 vchar 型. 允许插入"早班, 在web上显示, 就直接从数据库读出来,不加处理,直接显示.

你们多用哪种?

...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
IEQQ 2006-04-12
  • 打赏
  • 举报
回复
遇到牛人了.
xeqtr1982 2006-04-12
  • 打赏
  • 举报
回复
感觉第一种好些
sxdoujg 2006-04-12
  • 打赏
  • 举报
回复
第一个
wfliu 2006-04-12
  • 打赏
  • 举报
回复
第一种
Yang_ 2006-04-12
  • 打赏
  • 举报
回复
各有好处

一般需要考虑速度、方便性、占用空间

以班次来说,如果数据量估计不是很大,虽然int比较和字符串比较的速度差距很大,也会先考虑方便性而采取字符型(这里的字符基本定长,建议用char或者Nchar)

如果数据量估计很大,那速度应该是第一位的,用tinyint、smallint或者int

现在空间便宜,占用空间一般不用考虑
marco08 2006-04-12
  • 打赏
  • 举报
回复
第一种方法
子陌红尘 2006-04-12
  • 打赏
  • 举报
回复
declare @t1 table(ClassID int,ClassDesc varchar(4))
insert into @t1 select 1,'早班'
insert into @t1 select 2,'中班'
insert into @t1 select 3,'晚班'

declare @t2 table(Name varchar(8),ClassID int)
insert into @t2 select 'AAAA',1
insert into @t2 select 'BBBB',3
insert into @t2 select 'CCCC',2

select b.Name,a.ClassDesc from @t1 a,@t2 b where a.ClassID=b.ClassID

/*
Name ClassDesc
-------- ---------
AAAA 早班
CCCC 中班
BBBB 晚班
*/

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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