国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫(kù) > Oracle > 正文

Oracle數(shù)據(jù)庫(kù)使用及命名規(guī)則的詳解

2024-08-29 13:42:13
字體:
供稿:網(wǎng)友
 公司已建立的或待建立的網(wǎng)站,如:中文站(CHINA),國(guó)際站(ALIBABA),華商站(CHINESE)等。
  OLPS
    Online PRocess system,在線處理系統(tǒng),即我們的會(huì)員可以瀏覽的網(wǎng)站所連接的數(shù)據(jù)庫(kù),也是我們所說的前臺(tái)。
  BOPS
    Back Office process system,后臺(tái)處理系統(tǒng),即我們的網(wǎng)站的發(fā)布系統(tǒng)。
  BZO
    Business Object(?),公司網(wǎng)站低層java對(duì)象,主要負(fù)責(zé)與數(shù)據(jù)庫(kù)打交道。
  一、 命名約定
  1. 是指數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)對(duì)象如TABLE、SEQUENCE、PROCEDURE、COLUMN等的命名約定;
  2. 命名富有意義英文詞匯,除個(gè)別通用的(見列表),要避免使用縮寫),多個(gè)單詞組成的,中間以下劃線分割;
  3. 除數(shù)據(jù)庫(kù)名稱長(zhǎng)度為1-8個(gè)字符,其余為1-30個(gè)字符,Database link名稱也不要超過30個(gè)字符;
  4. 命名只能使用英文字母,數(shù)字和下劃線;
  5. 避免使用Oracle的保留字如level、要害字如type(見列表);
  6. 名表之間相關(guān)列名盡量同名;
  7. 數(shù)據(jù)庫(kù)的命名:網(wǎng)上數(shù)據(jù)庫(kù)命名為“OLPS”+表示站點(diǎn)(SITE,以下同)的2-4個(gè)字符,后臺(tái)數(shù)據(jù)庫(kù)命名為“BOPS”+表示站點(diǎn)的2-4個(gè)字符。測(cè)試數(shù)據(jù)庫(kù)命名為“OLPSBOPS”+“TEST”, 開發(fā)數(shù)據(jù)庫(kù)命名為“OLPSBOPS”+“TEST”,用模式(SCHEMA/USER)的不同來區(qū)分不同的站點(diǎn)。
  8. INDEX命名:table_name+column_name+index_type(1 byte)+idx,各部分以下劃線(_)分割。多單詞組成的column name,取前幾個(gè)單詞首字母,加末單詞組成column_name。如:sample表member_id上的index: sample_mid_idx   news表title上的unique index:news_titile_uidx;
  9. SEQUENCE命名:seq_+table_name;
  二、 注釋說明
  1. 本注釋說明主要用于PL/SQL程序及其它SQL文件,其它可作參考;
  2. SQLPLUS接受的注釋有三種:
  ―― 這兒是注釋
  /* 這兒是注釋 */
  REM 這兒是注釋
  3. 開始注釋,類似JAVAK中的開始注釋,主要列出文件名,編寫日期,版權(quán)說明,程序功能以及修改記錄:
  REM
  REM $Header: filename, version, created date,auther
  REM
  REM Copyright
  REM
  REM FUNCTION
  REM function eXPlanation
  REM
  REM NOTES
  REM
  REM MODIFIED (yy/mm/dd)
  REM who when - for what, recently goes first
  4. 塊注釋,如表注釋,PROCEDURE注釋等,同JAVA:
  /*
  * This table is for TrustPass
  * mainly store the information
  * of TrustPass members
  */
  5. 單行注釋,如列注釋:
  login_id VARCHAR2(32) NOT NULL, -- 會(huì)員標(biāo)識(shí)
  
  三、 縮進(jìn)
  低級(jí)別語句在高級(jí)別語句后的,一般縮進(jìn)4個(gè)空格:
  DECLARE
  v_MemberId VARCHAR2(32),
  BEGIN
  SELECT admin_member_id INTO v_MemberId
  FROM company
  WHERE id = 10;
  DBMS_OUTPUT.PUT_LINE(v_MemberId);
  END;
  
  同一語句不同部分的縮進(jìn),假如為sub statement,則通常為2個(gè)空格,假如與上一句某部分有密切聯(lián)系的,則縮至與其對(duì)齊:
  BEGIN
  FOR v_TmpRec IN
  (SELECT login_id,
  gmt_created, -- here indented as column above
  satus
  FROM member -- sub statement
  WHERE site = 'china'
  AND country='cn' )
  LOOP
  NULL;
  END LOOP;
  END;
  四、 斷行
  • 一行最長(zhǎng)不能超過80字符
  • 同一語句不同字句之間
  • 逗號(hào)以后空格
  • 其他分割符前空格
  SELECT offer_name
  ','
  offer_count as offer_category,
  id
  FROM category
  WHERE super_category_id_1 = 0;
  五、 大小寫
  屬于ORACLE的要害字大小,表名、列名等小寫。
  六、 列類型的選擇
  • 用CHAR(1)代替布爾值;
  • 應(yīng)盡量使用VARCHAR2代替CHAR類型;
  • VARCHAR(2)最多4000字符;
  • DATE精確到微秒,而非天;
  • 使用CLOB代替LONG,BLOB代替LONG RAW;
  • ORACLE只有NUMBER一種數(shù)據(jù)類型,使用時(shí)請(qǐng)給定長(zhǎng)度;
  七、 主鍵選擇
  選擇有意義的,不太長(zhǎng)且能唯一標(biāo)識(shí)記錄行的列做主鍵,沒有這種列時(shí),才考慮使用SEQUENCE做主健。
  八、 列長(zhǎng)度的選擇
  應(yīng)當(dāng)根據(jù)實(shí)際需要選擇列長(zhǎng)度。有對(duì)應(yīng)web 頁面的,與頁面上對(duì)應(yīng)列長(zhǎng)度一致。
  
  對(duì)數(shù)據(jù)的驗(yàn)證除數(shù)據(jù)庫(kù)端實(shí)現(xiàn)外還要盡可能在表現(xiàn)層控制。
  九、 使用SQL語句的約定
  1. 盡量避免在循環(huán)中使用SQL語句。
  2. 避免在WHERE字句中對(duì)列施以函數(shù):
  SELECT * 
  FROM service_promotion
  WHERE TO_CHAR(gmt_modified,’yyyy-mm-dd’)
  = ‘20001-09-01’;
    而應(yīng)使用:
  SELECT *
  FROM service_promotion
  WHERE gmt_modified
  >= TO_DATE(‘2001-9-01’,’yyyy-mm-dd’)
  AND gmt_modified
  < TO_DATE(‘2001-9-02’,’yyyy-mm-dd’);
  
  3. 避免使用數(shù)據(jù)庫(kù)的類型自動(dòng)轉(zhuǎn)換功能:
  SELECT * FROM category
  WHERE id = ‘123’; -- id’s type is number
  4. 避免無效的連接:
  SELECT count(*)
  FROM offer a, count_by_email b
  WHERE a.email(+) = b.email;
  5. 連接(join)時(shí)要使用別名:
  SELECT a.*,b.offer_count(*)
  FROM offer a, count_by_email b
  WHERE a.email(+) = b.email;
  6. 取TABLE 的META信息:
  SELECT *
  FROM table_name
  WHERE rowid is null (or rownum = 1 or pk = impossible_value);
  可考慮使用:
  SELECT *
  FROM table_name
  WHERE 1 = 0 ;
  
  
  
  十、 關(guān)于ALIBABA表的約定
  假如使用ALIBABA BZO,設(shè)表至少有如下字段:
  site VARCHAR2(32)
  gmt_create DATE
  gmt_modified DATE
  假如從IdBizObject繼續(xù),則還有一個(gè)NUMBER型的列,通常是主鍵,并與某一個(gè)SEQUENCECF 對(duì)應(yīng);假如從StrIdBizObject繼續(xù),則還有一個(gè)VARCHAR2型的列。
  十一、 列值約定
  1. 有固定值列表的列,如status, action, site, 其值取小寫;
  2. 應(yīng)盡可能選擇數(shù)字來代表固定值列表中的值,相應(yīng)的列定義為NUMBER型;
  3. 用CHAR(1)表示布爾值的取大寫:“Y”,“N”。
  十二、 關(guān)于表重復(fù)屬性的定義
  不能有多擇一的重復(fù)屬性列;
  
  對(duì)于能多選的重復(fù)屬性列,假如不做查詢列并且重復(fù)次數(shù)較多,應(yīng)使用ID_VARRAY代替,如要用作查詢列,重復(fù)次數(shù)多的,應(yīng)另建一表,次數(shù)少的且列值為二擇一時(shí),應(yīng)使用NUMBER類型,加位操作。
  十三、 數(shù)據(jù)修改約定
  發(fā)現(xiàn)ProdUCtion環(huán)境中數(shù)據(jù)有誤,需要改正的,應(yīng)在RA TERMINAL上提交數(shù)據(jù)更新表單,由數(shù)據(jù)庫(kù)操作員在當(dāng)日17時(shí)前修改完畢。
  
  數(shù)據(jù)庫(kù)更程序更新的結(jié)構(gòu)變動(dòng)及數(shù)據(jù)更新,類似處理。
  
  提交SQTT測(cè)試需要預(yù)備數(shù)據(jù)或更新結(jié)構(gòu)的,暫時(shí)先寫入測(cè)試請(qǐng)求中,由SQTT同志MAIL(注明測(cè)試請(qǐng)求表單鏈接即可)通過數(shù)據(jù)庫(kù)操作員修改數(shù)據(jù)庫(kù)。待內(nèi)部網(wǎng)TEAM增加新的表單后,測(cè)試請(qǐng)求分開提交。
  十四、 數(shù)據(jù)庫(kù)設(shè)計(jì)流程
  在新項(xiàng)目設(shè)計(jì)階段會(huì)議,應(yīng)有DBA參加。在SCHEMA確定以后方可開始編碼。
  
  縮寫字列表:
  payment pymt
  my trade activity mta
  
  非凡字列表:
  access DECIMAL INITIAL ON START
  ADD NOT INSERT ONLINE SUCCESSFUL
  ALL DEFAULT INTEGER OPTION SYNONYM
  ALTER DELETE INTERSECT OR SYSDATE
  AND DESC INTO ORDER TABLE
  ANY DISTINCT IS PCTFREE THEN
  AS DROP LEVEL PRIOR TO
  ASC ELSE LIKE PRIVILEGES TRIGGER
  AUDIT EXCLUSIVE LOCK PUBLIC UID
  BETWEEN EXISTS LONG RAW UNION
  BY FILE MAXEXTENTS RENAME UNIQUE
  FROM FLOAT MINUS RESOURCE UPDATE
  CHAR FOR MLSLABEL REVOKE USER
  CHECK SHARE MODE ROW VALIDATE
  CLUSTER GRANT MODIFY ROWID VALUES
  COLUMN GROUP NOAUDIT ROWNUM VARCHAR
  COMMENT HAVING NOCOMPRESS ROWS VARCHAR2
  COMPRESS IDENTIFIED NOWAIT SELECT VIEW
  CONNECT IMMEDIATE NULL session WHENEVER
  CREATE IN NUMBER SET WHERE
  CURRENT INCREMENT OF SIZE WITH
  DATE INDEX OFFLINE SMALLINT
  
  CHAR VARHCAR VARCHAR2 NUMBER DATE LONG
  CLOB BLOB BFILE
  INTEGER DECIMAL
  SUM COUNT GROUPING AVERAGE
  TYPE



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武山县| 阿克苏市| 雅江县| 九龙县| 大厂| 读书| 沙田区| 额敏县| 安新县| 政和县| 安阳县| 崇义县| 洛宁县| 疏附县| 衡山县| 绍兴市| 东乡族自治县| 沁源县| 东方市| 南宫市| 钦州市| 视频| 高淳县| 平塘县| 苏州市| 仙居县| 当阳市| 蕉岭县| 沿河| 闻喜县| 木兰县| 长宁区| 旌德县| 南康市| 山东省| 星座| 德昌县| 夏邑县| 科技| 谷城县| 洱源县|