读书人

如果在数据库里存储三值,你会采用哪种

发布时间: 2012-01-29 21:39:32 作者: rapoo

如果在数据库里存储三值,你会采用哪种数据库型??选了就有分~~~~
三值分别为 是,否,出错
可选答案
1. 允许空的bit true=是 false=否 null=出错
2. tinyInt 1=是 0=否 2=出错
3. smallint 1=是 0=否 -1=出错
4. char(1) 很多种,自己定.
5. tinyInt 1=是 2=否 0=出错 (这种稍有不同否和出错交换)
6. 自定义类型

7 以上都不用,我自己有自己的方法,请写一下.

[解决办法]
1111111111111111111111111111111111111111111111111111111111111111111
[解决办法]
4.老板说以后说不定有扩展!
[解决办法]
char(1)
[解决办法]
逻辑上我觉得bit更好
出错不是一种状态 就用null表示好了
[解决办法]
以前我会选1,现在我选4
[解决办法]
我还是喜欢用char(1)!
[解决办法]
楼主:失血模型啥?
[解决办法]
呵呵,用机器码啊binary不是很合适么。00 01 10 扩展也方便,用char的感觉虽然自己虽然方便了,处理代码也增加了。解释代码够累的
[解决办法]
4
[解决办法]
4
[解决办法]
1
[解决办法]
我选
2. tinyInt 1=是 0=否 2=出错

程序里面定义相应枚举对应这些值对应。
[解决办法]
两个值时一般选1
多值的话,用2
[解决办法]
2或者5
[解决办法]
4
[解决办法]
选5


[解决办法]
我用INT,如果要加功能,可以用这个INT做为ID对应到另外一个表去.
[解决办法]
2
[解决办法]
Char(1)效率要高点。
[解决办法]
可能是4
[解决办法]
继续关注
[解决办法]
2,3,4 随便
[解决办法]
可能是2 tinyInt
[解决办法]
up
[解决办法]


2,5
[解决办法]
up
[解决办法]
绝无可能扩充的话,用bool当然最好
否则倾向于用char(1)
[解决办法]
char(1)
[解决办法]
如果数据量特别大,为了检索速度快,则使用2,3,5
如果为了以后扩展方便则使用4,6
[解决办法]
char(1)吧
[解决办法]
如果是我就选bit
目前还没考虑效率 可能没遇到~
[解决办法]

选3

为以后扩充准备
[解决办法]
2,4,5都可以,不过个人比较喜欢用4
[解决办法]
char(1)
------------------------
http://fenglin.xland.cn
------------------------
[解决办法]
我会选
4. char(1) 很多种,自己定.

我现在用的是 int 1=是 2=否 3= 出错。


一般的cpu是32位的(以后会变成64位),所以呢 int 是不需要转换的,而 tinyInt smallint 是要转换一下的。

当然 int 占用更多的空间,所以大多数都选了 4 。


char(1) 也是可以存放 1 2 3 4 的呀,也可以放 a b c d 。更灵活。


[解决办法]
smallint
1是2否3错误
检索快。 数据规模相对较小
[解决办法]
1. 允许空的bit true=是 false=否 null=出错

[解决办法]
3或者2
0和1分别表示地false和true比较易于代码的阅读
-1或2表示出错可以用X <0或者X> 1来做判断。
tinyInt和要smallint我不太清楚具体的用途,主要是占用数据库的大小了,根据需要吧!
第1种方法,在做true or false判断前还要做非空的判断,比较麻烦
[解决办法]


我觉得这个最附合实际情况!
[解决办法]
bit类型正好和.NET里的bool?有对应,
从数据的转换来说这个是最合适的,
其它的类型都要做隐式或显式的转换才行,因为它们本身根本不布尔型值.
[解决办法]
从扩展的角度来看,用char(1)会好点,我喜欢用这个
[解决办法]
我选4,以后扩展时不会很麻烦,给自己留条后路啊
[解决办法]
char
[解决办法]
5
或者存储为int型,使用时按二进制数 使用

如存储为7(即 111),全部为true,0(000)全部为false
有一点,使用时要讲取 出的数转换为二进制使用

或者char(3)类型存储3位 (000),(111)等

[解决办法]
4
[解决办法]
2
[解决办法]
2/5适合于判断
[解决办法]
3 存储快,可扩展

[解决办法]
2. tinyInt 1=是 0=否 2=出错
[解决办法]
2. tinyInt 1=是 0=否 2=出错
------解决方案--------------------


反正布尔类型是行不通的
[解决办法]
倾向char.
[解决办法]
4. char(1)
[解决办法]
如果不考虑扩展我选1
否则我选4或用int(我比较喜欢这个~呵)
[解决办法]
正确答案
[解决办法]
继续关注
[解决办法]
支持
[解决办法]
char(1)

[解决办法]
4
[解决办法]
2
[解决办法]
我习惯用2,便于扩展……,呵呵……
[解决办法]
char(1)
-----------------------------------------
http://www.yanmingxuan.com.cn/
[解决办法]
7
00 01 10 ......

[解决办法]
我会从C#中使用方便的角度来考虑吧。

如果在C#中这对应一个enum,当然是用整数类的类型啦,因为enum和int是对应的,int和其他整数类的类型的转换也容易。

还要考虑的是这些选项之间的运算,例如与或非,对[true|false|null|整数值]进行布尔运算最好能够不用重载就合你业务逻辑要表达的布尔运算具有相同的语义。
[解决办法]
4
[解决办法]
int -> enum !
[解决办法]
int
[解决办法]
int 1=是 0=否 -1=出错

正在考虑是否升级为long(Int64),因为以后64位系统将成为主流~
[解决办法]
bigint
[解决办法]
选4最保险
[解决办法]
不用扩展1
考虑扩展用4
[解决办法]
4
[解决办法]
1
[解决办法]
继续关注
[解决办法]
4.方便
3.效率高
[解决办法]
4

读书人网 >asp.net

热点推荐