一、app更新提示后台接口開發-(2)數據庫表設計


新建一張數據庫表用來存儲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怎么存儲漢字來深究。

 

 

小菜水平有限,高手勿噴,歡迎交流~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM