![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库设计
xuexiaodong2009
主要从事C#编程,精通SQL,JS,jquery等技术,目前主要从事内部办公,微信企业号方面的应用
展开
-
数据库库设计:字段默认值
定义表,一般情况是不建议定义成可为空的字段的,可以使用默认值来定义默认值。例如:alter table tablename add(defaultField INTEGER default 1 not null);定义字段的默认值是1,如果没有赋值,再默认值是1alter table tablename add(createtime Date default sysdate not null);定原创 2017-03-02 15:21:50 · 11654 阅读 · 0 评论 -
数据库库设计:字段默认值二
在设计数据库时使用了数据库默认字段的方法,设置了默认值create table EAS.T_userLevel ( UL_ID INTEGER not null, UL_userLevel2 INTEGER default 0 not null, UL_userLevelTime2 DAT原创 2017-03-17 11:42:37 · 1924 阅读 · 0 评论 -
数据库库设计:树结构的数据读取
树形结构在实际中应用很多,但在数据库中一般也是设计为表格,如何读取,子孙节点,或者是祖先节点?在Oracle中使用start with connect by prior select * from tablename start with cond1connect by cond2where cond3;start with 子句:遍历起始条件,有个小技巧,如果要查父结点,这里可以用子结点的列,反原创 2017-03-02 14:22:03 · 943 阅读 · 0 评论 -
数据库库设计:字典表的设计
在设计软件时,经常会遇到类型的问题,也就是分类问题,例如:员工分类,正式员工,试用员工,实习生。这些数据是设计成字典表还是设计成常量? 在我们的系统中一直是设计成表的,但由于系统中有很多有很多中这种类型,导致很多表只有不到四五条数据,数据几乎不变,为了展示,使用视图,使用表关联。 其实我感觉像这样几乎不变的数据,设计成常量,应该更好,性能好,修改也简单,要改成表也很方便,相反如果是表要改成常原创 2017-02-23 09:42:12 · 16144 阅读 · 1 评论 -
数据库库设计:字段是否允许为空的思考
设计数据库表时,是否允许字段为空很长时间我都认为无所谓,但在工作了很长时间后,才发现,其实这个很重要,不能想当然。 之所以会有这个是否为空的选项,就是为了表示未知的情况。但是不是所有的未知情况都应该允许为空呢? 例如,性别,使用1表示男,0表示女,空表示未知或者是用户没有选择。 但又没有更好的方法呢? 首先说下可空字段的问题, 1如果为空,查询条件就必须处理为空的情况原创 2016-10-12 14:04:34 · 18557 阅读 · 2 评论 -
Oracle触发器表发生了变化 触发器不能读它解决方法
出现原因,是因为在更新的的表和读取的表是同一个表。 CREATE or replace TRIGGER T_userupdateT BEFORE update ON T_user REFERENCING OLD AS old NEW AS N_ROW FOR EACH ROW DECLARE U_xtfidemp1 varchar(36); u_xtempcode1 varcha原创 2016-04-18 18:25:24 · 16893 阅读 · 1 评论 -
Oracle由于排序字段错误,导致分页数据错误,错误原因真的想不到!!!
由于数据过多,经常使用分页的方法减少数据,相同的数据,相同的SQL,相同的系统,只是排序字段不同,会导致分页数据错误?不可能?确实不可能,我也是这么想想的!! 同一个程序,同一张表,同样的SQL,只有排序字段不同,就导致了分页数据不同是正常的,但分页数据错误,可能吗? 而且最奇怪的是,第一页数据是正确的,第二页,第三页,第四页数据完全相同,第五页数据又是正确的!!!什么原因!!!程序问题,但原创 2016-04-19 10:49:14 · 9296 阅读 · 1 评论 -
DB2数据库切换为oracle数据库经验教训总结
由于DB2数据库使用的人太少,公司有没有专业的DBA,决定把数据库从DB2数据库切换为oracle数据库,本以为很简单,可当真的切换时,却发现,有很多东西出乎意料。由于系统底层使用的是ORM映射工具,由于没有使用存储过程,自定义函数,触发器,因此我以为系统改动不大,但发现的问题却不少。1我们的主键基本上都采用共的是Sequence,没有采用自动增长作为主键。但获取Sequence在两种数据库中是不原创 2016-04-17 16:23:58 · 6060 阅读 · 0 评论 -
数据库的检查约束check约束
数据中的约束,主要有主键约束,外键约束,非空约束等。主键约束其实就是非空唯一约束,非空唯一约束也可以通过建立唯一索引来实现,外键约束需要通过其他的表来帮助实现,非空约束在定义是数据库字段时就定义了。还有另一类约束check约束,用处挺大的,只是自己很少使用。 那check约束可以实现那些功能呢? 1范围规定 2枚举值规定 3特定的匹配1范围规定 例如规定,金额只能大于0 ALTER T原创 2015-10-26 13:50:29 · 21541 阅读 · 2 评论 -
oracle数据库CPU特别高的解决方法
system表空间100%,导致数据库无法访问 系统表空间正常情况下只存放了数据字典之类的东西,所以占用的空间一般在500M以下。如果你的系统表空间占用比较多的空间,可能有以下几方面的原因:1)没有为用户明确指定默认表空间,导致system系统表空间作为用户默认表空间2)开启了审计,请检查此表的大小AUD$你可以运行以下查询来检查一下系统表空间哪些表比较大: SQL> select *原创 2017-07-05 15:10:10 · 8915 阅读 · 0 评论