标签:sage 强制 alter tle 空格 int 变化 time oracle数据库
新建一张数据库表用来存储app更新信息
数据表为:
CREATE TABLE APP_UPDATE_MESSAGE(
APP_ID VARCHAR2(50), --appId,01:android 02:ios
APP_CODE VARCHAR2(50), --客户端设备id字符串,如:app.android.version.key
APP_NAME VARCHAR2(50), --客户端设备名字
VERSION_MILEPOST NUMBER DEFAULT 0, --是否是一个里程牌式的版本,默认为0,是则为1
VERSION_CODE VARCHAR2(50) , --版本号
VERSION_CODE_BEFORE VARCHAR2(50) , --上一个版本号
VERSION_TYPE NUMBER, ---版本类型,0选择更新,1强制更新
VERSION_BIG VARCHAR2(50), --新版本大小
DOWNLOAD_URL VARCHAR2(50), --更新地址
UPDATE_TITLE VARCHAR2(50), --升级信息简要
UPDATE_MESSAGE VARCHAR2(4000), --升级信息详情
STATUS NUMBER, --版本状态 1:最新版本,0:之前老版本
CREATE_TIME DATE, --版本创建时间
UPDATE_PARAMS VARCHAR2(50), --添加扩展
CONSTRINT APP_UPDATE_MESSAGE PRIMARY KEY(APP_ID,VERSION_CODE) --把APP_ID和VERSION_CODE作为组合主键约束,两者组合不能重复
);
COMMENT ON TABLE APP_UPDATE_MESSAGE IS ‘APP更新提示表‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.APP_ID IS ‘appId,01-android,02-ios‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.APP_CODE IS ‘客户端设备id字符串‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.APP_NAME IS ‘客户端设备名字‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.VERSION_MILEPOST IS ‘0-普通版本,1-里程碑式版本‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.VERSION_CODE IS ‘版本号‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.VERSION_CODE_BEFORE IS ‘上一个版本号‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.VERSION_TYPE IS ‘版本类型,0-选择更新,1-强制更新‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.VERSION_BIG IS ‘新版本大小‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.DOWNLOAD_URL IS ‘更新地址‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.UPDATE_TITLE IS ‘升级信息简要‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.UPDATE_MESSAGE IS ‘升级信息详情‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.STATUS IS ‘版本状态,0-之前的老版本,1-新版本‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.CREATE_TIME IS ‘版本创建时间‘;
COMMENT ON COLUMN APP_UPDATE_MESSAGE.UPDATE_PARAMS IS ‘添加扩展‘;
扩展:
1、app客户端收到返回值后,根据版本状态STATUS,来判断是否显示更新提示框
2、对于字段长度的一些解释:
CHAR的长度是固定的,没有字符就补空,VARCHAR2是变化的,如:VARCHAR2(20),表示20是最大值,小于20时,按实际长度存储。
VARCHAR2在oracle数据库中保存变长字符,在数据库中存储空间的大小是根据实际的字符长度,不会像CHAR一样不上空格,这样占用的空间更少。
由于VARCHAR2是变长存储,那么VARCHAR2(10),VARCHAR2(1000)有个什么区别,反正是变长的,存储空间相同,直接弄1000得了,免得以后要加长又要改变字段定义。为什么不直接用1000呢,有以下几个原因:首先字段长度是数据库的一种约束,可以保证进入数据库的数据符合长度要求,定义合理的字段长度可以减少一部分非法数据进入,等等,具体可以搜索oracle数据库字段长度设计来深究这个长度的问题,总体下来结论就是:
不能随便定义,并不是越大越好,要结合自身的实际业务,对于描述详情的信息,长度不可预知,可以保留更大的长度,避免以后经常进行长度调整,如直接定为4000.
3、更改字段长度sql语句:
例如调整APP_ID字段长度为10
ALTER TABLE APP_UPDATE_MESSAGE MODIFY APP_ID VARCHAR2(10);
4、oracle数据库中varahcr2存储汉字问题
根据数据库字符集的不同,存储汉字多少不同,如果用的是GBK编码,那个一个汉字将占用2个字节,用的是UTF8编码,那么一个汉字将占用3个字节。定字段长度时需要考虑到这点,这个问题的具体详解,可以搜索oracle的varchar2怎么存储汉字来深究。
小菜水平有限,高手勿喷,欢迎交流~~~
标签:sage 强制 alter tle 空格 int 变化 time oracle数据库
原文地址:http://www.cnblogs.com/guomingkang/p/6073544.html