1. 程式人生 > >oracle建表實例

oracle建表實例

dex 建表 ont 支持 編號 b- 默認 extent storage

-- --------------------------------------------------
-- Generated by Enterprise Architect Version 9.2.921
-- Created On : 星期一, 06 六月, 2016
-- DBMS : Oracle
-- --------------------------------------------------

-- Create Tables
CREATE TABLE CSTL_ASM_CLASS
(
CLS_ID NUMBER(18) NOT NULL, -- 主鍵
LEG_ID NUMBER(18) NOT NULL, -- 關聯的航節ID
DECK VARCHAR2(1) NOT NULL, -- 甲板編號,U/M/L,默認L
CLASS VARCHAR2(1) NOT NULL, -- 艙位代碼
SUB_CLASS VARCHAR2(30) NOT NULL, -- 子艙代碼集合
CLASS_SEQ NUMBER(2) NOT NULL, -- 艙位排序
AISLE_NUMBER VARCHAR2(30) NOT NULL -- 艙位內部列布局信息
)
TABLESPACE SEAT_CSTL_DAT
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 10M
next 1M
minextents 1
maxextents unlimited
)
;

COMMENT ON TABLE CSTL_ASM_CLASS IS ‘航班座位圖艙位信息表‘
;
COMMENT ON COLUMN CSTL_ASM_CLASS.CLS_ID IS ‘主鍵‘
;
COMMENT ON COLUMN CSTL_ASM_CLASS.LEG_ID IS ‘關聯的航節ID‘
;
COMMENT ON COLUMN CSTL_ASM_CLASS.DECK IS ‘甲板編號,U/M/L,默認L‘
;
COMMENT ON COLUMN CSTL_ASM_CLASS.CLASS IS ‘艙位代碼‘
;
COMMENT ON COLUMN CSTL_ASM_CLASS.SUB_CLASS IS ‘子艙代碼集合‘
;
COMMENT ON COLUMN CSTL_ASM_CLASS.CLASS_SEQ IS ‘艙位排序‘
;
COMMENT ON COLUMN CSTL_ASM_CLASS.AISLE_NUMBER IS ‘艙位內部列布局信息‘
;

CREATE TABLE CSTL_ASM_DOLLAR_LEG
(
LEG_ID NUMBER(18) NOT NULL, -- 對應航節表主鍵,是一個非真實的外鍵,作為本表的主鍵
HASH NUMBER(6) NOT NULL, -- 航班標識的HASH值,航班標識形如(CA1234T_10MAR16)
COUNT NUMBER(2) NOT NULL, -- 累計執行減$屬性的次數
DE_TIME DATE NOT NULL, -- 減$的時間,此處時間應為UTC時間
CMD_HEAD VARCHAR2(100) NOT NULL, -- 減$時候的指令頭部
SEAT VARCHAR2(4000), -- 減$的座位ID,以#分隔每一個座位。
CHECK_STATUS NUMBER(1) NOT NULL -- 標識航節自動上$屬性後的復核狀態,1標識沒有復核,0標識復核過。
)
TABLESPACE SEAT_CSTL_DAT
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 10M
next 1M
minextents 1
maxextents unlimited
)
;

COMMENT ON TABLE CSTL_ASM_DOLLAR_LEG IS ‘已被自動上$屬性的航班的航節信息,用於起飛前某時刻減去$屬性。‘
;
COMMENT ON COLUMN CSTL_ASM_DOLLAR_LEG.LEG_ID IS ‘對應航節表主鍵,是一個非真實的外鍵,作為本表的主鍵‘
;
COMMENT ON COLUMN CSTL_ASM_DOLLAR_LEG.HASH IS ‘航班標識的HASH值,航班標識形如(CA1234T_10MAR16)‘
;
COMMENT ON COLUMN CSTL_ASM_DOLLAR_LEG.COUNT IS ‘累計執行減$屬性的次數‘
;
COMMENT ON COLUMN CSTL_ASM_DOLLAR_LEG.DE_TIME IS ‘減$的時間,此處時間應為UTC時間‘
;
COMMENT ON COLUMN CSTL_ASM_DOLLAR_LEG.CMD_HEAD IS ‘減$時候的指令頭部‘
;
COMMENT ON COLUMN CSTL_ASM_DOLLAR_LEG.SEAT IS ‘減$的座位ID,以#分隔每一個座位。‘
;
COMMENT ON COLUMN CSTL_ASM_DOLLAR_LEG.CHECK_STATUS IS ‘標識航節自動上$屬性後的復核狀態,1標識沒有復核,0標識復核過。‘
;
CREATE TABLE CSTL_ASM_FLIGHT
(
FLT_ID NUMBER(18) NOT NULL, -- 主鍵,唯一標識
AIRLINE VARCHAR2(2) NOT NULL, -- 航空公司
FLIGHT_NUMBER VARCHAR2(5) NOT NULL, -- 航班號,包含後綴
FLIGHT_DATE DATE NOT NULL, -- 起飛航班天,精確到日
ITINERARY VARCHAR2(70) NOT NULL, -- 航班的航程,A-B-C-D形式,最多支持16個航節,17個航站
STATUS NUMBER(10) NOT NULL, -- 航班狀態
CONTEXT NUMBER(1) NOT NULL, -- 航班初始化上下文狀態。1-發生IF;2-發生PNL;3-1和2都發生;0-其他
CREATE_TIME DATE NOT NULL, -- 本條記錄首次創建時間
UPDATE_TIME DATE NOT NULL -- 航班被更新時間,精確到秒,多用於狀態更新
)
TABLESPACE SEAT_CSTL_DAT
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 10M
next 1M
minextents 1
maxextents unlimited
)
;

COMMENT ON TABLE CSTL_ASM_FLIGHT IS ‘航班信息總表‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.FLT_ID IS ‘主鍵,唯一標識‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.AIRLINE IS ‘航空公司‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.FLIGHT_NUMBER IS ‘航班號,包含後綴‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.FLIGHT_DATE IS ‘起飛航班天,精確到日‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.ITINERARY IS ‘航班的航程,A-B-C-D形式,最多支持16個航節,17個航站‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.STATUS IS ‘航班狀態‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.CONTEXT IS ‘航班初始化上下文狀態。1-發生IF;2-發生PNL;3-1和2都發生;0-其他‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.CREATE_TIME IS ‘本條記錄首次創建時間‘
;
COMMENT ON COLUMN CSTL_ASM_FLIGHT.UPDATE_TIME IS ‘航班被更新時間,精確到秒,多用於狀態更新‘
;

CREATE TABLE CSTL_ASM_LEG
(
LEG_ID NUMBER(18) NOT NULL, -- 主鍵,航節信息
FLT_ID NUMBER(18) NOT NULL, -- 關聯FLIGHT表,外鍵功能,但非實際外鍵
EQT_TYPE VARCHAR2(3) NOT NULL, -- 機型
EQT_VERSION VARCHAR2(4) NOT NULL, -- 版本號
DEP_AIRPORT VARCHAR2(3) NOT NULL, -- 起飛機場
ARR_AIRPORT VARCHAR2(3) NOT NULL, -- 到達機場
LEG_SEQ NUMBER(2) NOT NULL, -- 航節在航程中的次序
STATUS NUMBER(10) NOT NULL, -- 航段狀態
CONTEXT NUMBER(2) NOT NULL, -- 換飛機上下文狀態,AEC,REA,SEA,PO分別對應四個bit
DEP_TIME DATE, -- 航段實際起飛時間
PLAN_DEP_TIME DATE -- 航段計劃起飛時間
)
TABLESPACE SEAT_CSTL_DAT
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 10M
next 1M
minextents 1
maxextents unlimited
)
;

COMMENT ON TABLE CSTL_ASM_LEG IS ‘航班座位圖航節表‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.LEG_ID IS ‘主鍵,航節信息‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.FLT_ID IS ‘關聯FLIGHT表,外鍵功能,但非實際外鍵‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.EQT_TYPE IS ‘機型‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.EQT_VERSION IS ‘版本號‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.DEP_AIRPORT IS ‘起飛機場‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.ARR_AIRPORT IS ‘到達機場‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.LEG_SEQ IS ‘航節在航程中的次序‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.STATUS IS ‘航段狀態‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.CONTEXT IS ‘換飛機上下文狀態,AEC,REA,SEA,PO分別對應四個bit‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.DEP_TIME IS ‘航段實際起飛時間‘
;
COMMENT ON COLUMN CSTL_ASM_LEG.DEP_TIME IS ‘航段計劃起飛時間‘
;

CREATE TABLE CSTL_ASM_SEAT
(
SEAT_ID NUMBER(18) NOT NULL, -- 座位ID號,主鍵
LEG_ID NUMBER(18) NOT NULL, -- 航節表ID
SHOW CHAR(1) NOT NULL, -- 矩陣格式顯示時的內容
SERVICE_ROW NUMBER(2), -- 真實行號
SERVICE_COL CHAR(1), -- 列號
LOGIC_ROW NUMBER(3), -- 邏輯行號
LOGIC_COL NUMBER(2), -- 邏輯列號
X NUMBER(3) NOT NULL, -- 以矩陣圖左上角為原點,向右為正方向的X坐標
Y NUMBER(3) NOT NULL, -- 以矩陣圖左上角為原點,向下為正方向的Y坐標
ATTR_1 NUMBER(10), -- 整型記錄座位屬性1-32bit,從左到右排列。
ATTR_2 NUMBER(10), -- 整型記錄座位屬性33-64bit,從左到右排列。
ATTR_3 NUMBER(10), -- 整型記錄座位屬性65-96bit,從左到右排列。
ATTR_4 NUMBER(10), -- 整型記錄座位屬性97-128bit,從左到右排列。
SEG_RESERVE_RANGE NUMBER(2), -- 保留航段座位長度,用於A屬性
ROW_ATTR NUMBER(10), -- 行屬性
SECTION_ID NUMBER(2), -- 座位段ID,機艙中以過道分隔,從左到右,從1依次遞增。
SECTION_ATTR NUMBER(10), -- 座位段屬性
DECK VARCHAR2(1) NOT NULL, -- 甲板代碼,U/M/L,默認為L
CLASS VARCHAR2(1) NOT NULL, -- 艙位代碼
SUB_CLASS VARCHAR2(1), -- 所屬的子艙代碼
PRICE_LEVEL VARCHAR2(1), -- 運價等級
SEAT_LEVEL VARCHAR2(5) -- 座位等級
)
TABLESPACE SEAT_CSTL_DAT
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 10M
next 1M
minextents 1
maxextents unlimited
)
;

COMMENT ON TABLE CSTL_ASM_SEAT IS ‘航班座位圖座位信息表‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SEAT_ID IS ‘座位ID號,主鍵‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.LEG_ID IS ‘航節表ID‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SHOW IS ‘矩陣格式顯示時的內容‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SERVICE_ROW IS ‘真實行號‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SERVICE_COL IS ‘列號‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.LOGIC_ROW IS ‘邏輯行號‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.LOGIC_COL IS ‘邏輯列號‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.X IS ‘以矩陣圖左上角為原點,向右為正方向的X坐標‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.Y IS ‘以矩陣圖左上角為原點,向下為正方向的Y坐標‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.ATTR_1 IS ‘整型記錄座位屬性1-32bit,從左到右排列。‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.ATTR_2 IS ‘整型記錄座位屬性33-64bit,從左到右排列。‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.ATTR_3 IS ‘整型記錄座位屬性65-96bit,從左到右排列。‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.ATTR_4 IS ‘整型記錄座位屬性97-128bit,從左到右排列。‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SEG_RESERVE_RANGE IS ‘保留航段座位長度,用於A屬性‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.ROW_ATTR IS ‘行屬性‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SECTION_ID IS ‘座位段ID,機艙中以過道分隔,從左到右,從1依次遞增。‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SECTION_ATTR IS ‘座位段屬性‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.DECK IS ‘甲板代碼,U/M/L,默認為L‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.CLASS IS ‘艙位代碼‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SUB_CLASS IS ‘所屬的子艙代碼‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.PRICE_LEVEL IS ‘運價等級‘
;
COMMENT ON COLUMN CSTL_ASM_SEAT.SEAT_LEVEL IS ‘座位等級‘
;

CREATE TABLE CSTL_ASM_SHARE
(
MC_AIRLINE VARCHAR2(2) NOT NULL, -- 市場方航空公司
MC_NUMBER VARCHAR2(5) NOT NULL, -- 市場方航班號
FLIGHT_DATE DATE NOT NULL, -- 航班天,精確到日
OC_AIRLINE VARCHAR2(2) NOT NULL, -- 承運方航空公司
OC_NUMBER VARCHAR2(5) NOT NULL, -- 承運方航班號
DEP_AIRPORT VARCHAR2(3) NOT NULL, -- 航段的起飛機場
ARR_AIRPORT VARCHAR2(3) NOT NULL, -- 航段的到達機場
OC_FLT_ID NUMBER(9) NOT NULL -- 該共享信息對應的承運方航班ID
)
TABLESPACE SEAT_CSTL_DAT
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 10M
next 1M
minextents 1
maxextents unlimited
)
;

COMMENT ON TABLE CSTL_ASM_SHARE IS ‘記錄代碼共享關系‘
;
COMMENT ON COLUMN CSTL_ASM_SHARE.MC_AIRLINE IS ‘市場方航空公司‘
;
COMMENT ON COLUMN CSTL_ASM_SHARE.MC_NUMBER IS ‘市場方航班號‘
;
COMMENT ON COLUMN CSTL_ASM_SHARE.FLIGHT_DATE IS ‘航班天,精確到日‘
;
COMMENT ON COLUMN CSTL_ASM_SHARE.OC_AIRLINE IS ‘承運方航空公司‘
;
COMMENT ON COLUMN CSTL_ASM_SHARE.OC_NUMBER IS ‘承運方航班號‘
;
COMMENT ON COLUMN CSTL_ASM_SHARE.DEP_AIRPORT IS ‘航段的起飛機場‘
;
COMMENT ON COLUMN CSTL_ASM_SHARE.ARR_AIRPORT IS ‘航段的到達機場‘
;
COMMENT ON COLUMN CSTL_ASM_SHARE.OC_FLT_ID IS ‘該共享信息對應的承運方航班ID‘
;

-- Create Primary Key Constraints
ALTER TABLE CSTL_ASM_CLASS ADD CONSTRAINT PK_CSTL_ASM_CLASS
PRIMARY KEY (CLS_ID)
USING INDEX TABLESPACE SEAT_CSTL_IDX
;

ALTER TABLE CSTL_ASM_DOLLAR_LEG ADD CONSTRAINT PK_CSTL_DOLLAR_LEG
PRIMARY KEY (LEG_ID)
USING INDEX TABLESPACE SEAT_CSTL_IDX
;

ALTER TABLE CSTL_ASM_FLIGHT ADD CONSTRAINT PK_CSTL_ASM_FLIGHT
PRIMARY KEY (FLT_ID)
USING INDEX TABLESPACE SEAT_CSTL_IDX
;

ALTER TABLE CSTL_ASM_LEG ADD CONSTRAINT PK_CSTL_ASM_LEG
PRIMARY KEY (LEG_ID)
USING INDEX TABLESPACE SEAT_CSTL_IDX
;

ALTER TABLE CSTL_ASM_SEAT ADD CONSTRAINT PK_CSTL_ASM_SEAT
PRIMARY KEY (SEAT_ID)
USING INDEX TABLESPACE SEAT_CSTL_IDX
;

--創建普通索引
CREATE INDEX INDEX_SEAT_LEG_ID ON CSTL_ASM_SEAT(LEG_ID)
TABLESPACE SEAT_CSTL_IDX
;
CREATE INDEX INDEX_CLASS_LEGID ON CSTL_ASM_CLASS(LEG_ID)
TABLESPACE SEAT_CSTL_IDX
;
CREATE INDEX INDEX_FLIGHT_NUMBER ON CSTL_ASM_FLIGHT(AIRLINE,FLIGHT_NUMBER)
TABLESPACE SEAT_CSTL_IDX
;
CREATE INDEX INDEX_LEG_FLTID ON CSTL_ASM_LEG(FLT_ID)
TABLESPACE SEAT_CSTL_IDX
;
CREATE INDEX INDEX_STATUS_DETIME ON CSTL_ASM_DOLLAR_LEG(CHECK_STATUS,DE_TIME)
TABLESPACE SEAT_CSTL_IDX
;
CREATE INDEX SHARE_OC_FLT_ID ON CSTL_ASM_SHARE(OC_FLT_ID)
TABLESPACE SEAT_CSTL_IDX
;
CREATE INDEX SHARE_MC_FLIGHT_NUMBER ON CSTL_ASM_SHARE(MC_AIRLINE, MC_NUMBER, FLIGHT_DATE)
TABLESPACE SEAT_CSTL_IDX
;
------------------
-- 創建自增序列 --
------------------

-- 艙位信息表
create sequence CSTL_ASM_CLASS_SEQ
minvalue 1
maxvalue 9999999999999999
start with 1
increment by 1
cache 3
cycle;

-- 航班信息表,總父表
create sequence CSTL_ASM_FLIGHT_SEQ
minvalue 1
maxvalue 999999999999
start with 1
increment by 1
cycle;

-- 航節信息表
create sequence CSTL_ASM_LEG_SEQ
minvalue 1
maxvalue 99999999999999
start with 1
increment by 1
cycle;

-- 座位信息表
create sequence CSTL_ASM_SEAT_SEQ
minvalue 1
maxvalue 9999999999999999
start with 1
increment by 1
cache 10
cycle;

oracle建表實例