<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-13  評論-28  文章-63  trackbacks-0
    公司已建立的或待建立的網站,如:中文站(CHINA),國際站(ALIBABA),華商站(CHINESE)等。
      OLPS
        Online process system,在線處理系統,即我們的會員可以瀏覽的網站所連接的數據庫,也是我們所說的前臺。
      BOPS
        Back Office process system,后臺處理系統,即我們的網站的發布系統。
      BZO
        Business Object(?),公司網站低層JAVA對象,主要負責與數據庫打交道。
      一、 命名約定
      1. 是指數據庫、數據庫對象如TABLE、SEQUENCE、PROCEDURE、COLUMN等的命名約定;
      2. 命名富有意義英文詞匯,除個別通用的(見列表),要避免使用縮寫),多個單詞組成的,中間以下劃線分割;
      3. 除數據庫名稱長度為1-8個字符,其余為1-30個字符,Database link名稱也不要超過30個字符;
      4. 命名只能使用英文字母,數字和下劃線;
      5. 避免使用Oracle的保留字如level、關鍵字如type(見列表);
      6. 名表之間相關列名盡量同名;
      7. 數據庫的命名:網上數據庫命名為“OLPS”+表示站點(SITE,以下同)的2-4個字符,后臺數據庫命名為“BOPS”+表示站點的2-4個字符。測試數據庫命名為“OLPS|BOPS”+“TEST”, 開發數據庫命名為“OLPS|BOPS”+“TEST”,用模式(SCHEMA/USER)的不同來區分不同的站點。
      8. INDEX命名:table_name+column_name+index_type(1 byte)+idx,各部分以下劃線(_)分割。多單詞組成的column name,取前幾個單詞首字母,加末單詞組成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中的開始注釋,主要列出文件名,編寫日期,版權說明,程序功能以及修改記錄:
      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, -- 會員標識
      
      三、 縮進
      低級別語句在高級別語句后的,一般縮進4個空格:
      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;
      
      同一語句不同部分的縮進,如果為sub statement,則通常為2個空格,如果與上一句某部分有密切聯系的,則縮至與其對齊:
      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;
      四、 斷行
      ? 一行最長不能超過80字符
      ? 同一語句不同字句之間
      ? 逗號以后空格
      ? 其他分割符前空格
      SELECT offer_name
      ||','
      ||offer_count as offer_category,
      id
      FROM category
      WHERE super_category_id_1 = 0;
      五、 大小寫
      屬于ORACLE的關鍵字大小,表名、列名等小寫。
      六、 列類型的選擇
      ? 用CHAR(1)代替布爾值;
      ? 應盡量使用VARCHAR2代替CHAR類型;
      ? VARCHAR(2)最多4000字符;
      ? DATE精確到微秒,而非天;
      ? 使用CLOB代替LONG,BLOB代替LONG RAW;
      ? ORACLE只有NUMBER一種數據類型,使用時請給定長度;
      七、 主鍵選擇
      選擇有意義的,不太長且能唯一標識記錄行的列做主鍵,沒有這種列時,才考慮使用SEQUENCE做主健。
      八、 列長度的選擇
      應當根據實際需要選擇列長度。有對應web 頁面的,與頁面上對應列長度一致。
      
      對數據的驗證除數據庫端實現外還要盡可能在表現層控制。
      九、 使用SQL語句的約定
      1. 盡量避免在循環中使用SQL語句。
      2. 避免在WHERE字句中對列施以函數:
      SELECT * 
      FROM service_promotion
      WHERE TO_CHAR(gmt_modified,’yyyy-mm-dd’)
      = ‘20001-09-01’;
        而應使用:
      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. 避免使用數據庫的類型自動轉換功能:
      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)時要使用別名:
      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 ;
      
      
      
      十、 關于ALIBABA表的約定
      如果使用ALIBABA BZO,設表至少有如下字段:
      site VARCHAR2(32)
      gmt_create DATE
      gmt_modified DATE
      如果從IdBizObject繼承,則還有一個NUMBER型的列,通常是主鍵,并與某一個SEQUENCECF 對應;如果從StrIdBizObject繼承,則還有一個VARCHAR2型的列。
      十一、 列值約定
      1. 有固定值列表的列,如status, action, site, 其值取小寫;
      2. 應盡可能選擇數字來代表固定值列表中的值,相應的列定義為NUMBER型;
      3. 用CHAR(1)表示布爾值的取大寫:“Y”,“N”。
      十二、 關于表重復屬性的定義
      不能有多擇一的重復屬性列;
      
      對于能多選的重復屬性列,如果不做查詢列并且重復次數較多,應使用ID_VARRAY代替,如要用作查詢列,重復次數多的,應另建一表,次數少的且列值為二擇一時,應使用NUMBER類型,加位操作。
      十三、 數據修改約定
      發現Production環境中數據有誤,需要改正的,應在RA TERMINAL上提交數據更新表單,由數據庫操作員在當日17時前修改完畢。
      
      數據庫更程序更新的結構變動及數據更新,類似處理。
      
      提交SQTT測試需要準備數據或更新結構的,暫時先寫入測試請求中,由SQTT同志MAIL(注明測試請求表單鏈接即可)通過數據庫操作員修改數據庫。待內部網TEAM增加新的表單后,測試請求分開提交。
      十四、 數據庫設計流程
      在新項目設計階段會議,應有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

    posted on 2006-09-23 23:21 七匹狼 閱讀(285) 評論(0)  編輯  收藏 所屬分類: oracle
    主站蜘蛛池模板: 亚洲av无码偷拍在线观看| 男女一边桶一边摸一边脱视频免费| 久久精品无码一区二区三区免费| 中日韩亚洲人成无码网站| 亚洲国产精品国产自在在线| 国产无遮挡裸体免费视频在线观看| 亚洲宅男精品一区在线观看| 亚洲狠狠爱综合影院婷婷| 久久午夜羞羞影院免费观看| 亚洲精品宾馆在线精品酒店| 亚洲精品无码不卡在线播HE | 一日本道a高清免费播放| 亚洲综合久久综合激情久久 | ZZIJZZIJ亚洲日本少妇JIZJIZ| 91短视频在线免费观看| 美女隐私免费视频看| 亚洲黄色在线播放| 亚洲午夜精品一级在线播放放| 曰批全过程免费视频在线观看| 久久不见久久见免费影院www日本| 亚洲不卡在线观看| 亚洲人成亚洲人成在线观看| 四色在线精品免费观看| 91精品国产免费久久国语麻豆| 免费很黄无遮挡的视频毛片| 亚洲av无码一区二区三区观看| 亚洲第一AAAAA片| 免费a级毛片18以上观看精品| 1000部拍拍拍18勿入免费视频软件| 九九免费久久这里有精品23| 亚洲视频一区二区三区四区| 亚洲AV永久无码精品一百度影院| 亚洲?v无码国产在丝袜线观看| 久久WWW色情成人免费观看| 91视频免费网站| 在线亚洲v日韩v| 亚洲日韩精品国产一区二区三区| 精品亚洲国产成AV人片传媒| 亚洲人精品午夜射精日韩| 亚洲精品专区在线观看| 日韩免费三级电影|