[Oracle]为布尔字段值选择一种高效的设计策略
来源:互联网 发布:plc编程软件手机版 编辑:程序博客网 时间:2024/06/03 19:46
在设计数据库表结构时,选择一种高效的策略来存储一个可以在很多编程环境中使用的逻辑布尔值是非常重要的。(虽然 Oracle 没有 Boolean 数据类型来表示数据库字段,但是在 PL/SQL 中却具有 Boolean 数据类型。)
任何布尔定义的字段还应该被正确进行约束检查,以确保在插入/更新时输入了有效的值。
create table tbool (bool char check (bool in ('N','Y'));
insert into tbool values ('N');
insert into tbool values ('Y');
最常见的设计是模拟很多 Oracle 的数据字典视图中使用的类似布尔的标志,选择‘Y’表示真,‘N’表示假。然而,要正确地与宿主环境交互,比如与 JDBC、OCCI 和其它编程环境交互,最好选择0表示假,选择1表示真,从而使getBoolean 和setBoolean 能够正确地处理它们。
We could define a Boolean as NUMBER(1); however, in Oracle's internal number format, 0 takes 1 byte and 1 takes 2 bytes after the length byte (so it's more efficient to store it as CHAR). Even though the character is defined as CHAR, SQL can convert and verify against actual numbers.
我们可以将一个布乐类型定义为 NUMBER(1);然而,在 Oracle 的内部数字格式中,0在长度字节之后占用一个字节,而1在长度字节之后占用两个字节(所以更加高效地方式是将其存储为 CHAR)。即使字符被定义为 CHAR,SQL 也可以转换和验证实际的数字。
create table tbool (bool char check (bool in (0,1));
insert into tbool values(0);
insert into tbool values(1);
- [Oracle]为布尔字段值选择一种高效的设计策略
- Oracle数据库设计字段类型选择错误的隐患
- 布尔字段的显示
- 一种高效流媒体电影服务器的设计
- 一种高效流媒体服务器的设计
- 一种高效流媒体电影服务器的设计
- 设计高效SQL: 一种视觉的方法
- 基于策略的一种高效内存池的实现
- 基于策略的一种高效内存池的实现
- oracle下字段拆分,字段合并的一种方式
- 一种简单的直观的高效的权限设计
- 一种简单的直观的高效的权限设计
- 一种简单的直观的高效的权限设计
- ORACLE删除重复数据的一种高效的方法
- 一种高效可伸缩的缓存设计方法
- Oracle中判断字段值为NULL的函数
- DULO:一种利用时间和空间局部性的高效缓存置换策略
- 判断质数的一种高效方法——基于裁剪策略
- 解读ASP.NET Portal Starter Kit(1)——数据库篇
- 在ASP.NET下实现数字和字符相混合的验证码
- C#如何不根据图像文件扩展名来确定一个图像文件是什么格式
- 『IT视界』 [大话IT]做什么网站赚钱——论网站的赢利模式 (转东转西)
- WebSite
- [Oracle]为布尔字段值选择一种高效的设计策略
- (原创)在web开发中的三个层次使用事务
- 解读ASP.NET Portal Starter Kit(2)——用户配置文件篇
- Oracle 9i 分析函数参考手册
- asp开发记录(1)——[Microsoft][ODBC Microsoft Access Driver]行中有错误
- 解读ASP.NET Portal Starter Kit(3)——代码文件篇
- STL vector 容器介绍
- 撞死母猪
- 一个DELPHI写的AES算法源码中的问题