schema-oracle.sql 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. -- =============================================
  2. -- 头寸管理系统 - 建表脚本 (Oracle 19c)
  3. -- =============================================
  4. -- 头寸表
  5. CREATE TABLE T_POSITION (
  6. ID NUMBER(19) NOT NULL,
  7. POSITION_CODE VARCHAR2(64) NOT NULL,
  8. POSITION_NAME VARCHAR2(128) NOT NULL,
  9. POSITION_TYPE VARCHAR2(32) NOT NULL,
  10. DIRECTION VARCHAR2(16) NOT NULL,
  11. QUANTITY NUMBER(18,4) DEFAULT 0,
  12. PRICE NUMBER(18,4) DEFAULT 0,
  13. MARKET_VALUE NUMBER(18,4) DEFAULT 0,
  14. ACCOUNT_CODE VARCHAR2(64),
  15. PRODUCT_CODE VARCHAR2(64),
  16. STATUS VARCHAR2(16) DEFAULT 'ACTIVE',
  17. VERSION NUMBER(10) DEFAULT 0,
  18. DELETED NUMBER(1) DEFAULT 0,
  19. CREATE_TIME TIMESTAMP DEFAULT SYSDATE,
  20. UPDATE_TIME TIMESTAMP DEFAULT SYSDATE,
  21. CONSTRAINT PK_T_POSITION PRIMARY KEY (ID),
  22. CONSTRAINT UK_T_POSITION_CODE UNIQUE (POSITION_CODE)
  23. );
  24. COMMENT ON TABLE T_POSITION IS '头寸表';
  25. COMMENT ON COLUMN T_POSITION.ID IS '主键ID';
  26. COMMENT ON COLUMN T_POSITION.POSITION_CODE IS '头寸编号(业务唯一编号)';
  27. COMMENT ON COLUMN T_POSITION.POSITION_NAME IS '头寸名称';
  28. COMMENT ON COLUMN T_POSITION.POSITION_TYPE IS '头寸类型:TRADING-交易头寸,INVESTMENT-投资头寸,SETTLEMENT-结算头寸';
  29. COMMENT ON COLUMN T_POSITION.DIRECTION IS '方向:LONG-多头,SHORT-空头';
  30. COMMENT ON COLUMN T_POSITION.QUANTITY IS '数量';
  31. COMMENT ON COLUMN T_POSITION.PRICE IS '价格';
  32. COMMENT ON COLUMN T_POSITION.MARKET_VALUE IS '市值';
  33. COMMENT ON COLUMN T_POSITION.ACCOUNT_CODE IS '账户编号';
  34. COMMENT ON COLUMN T_POSITION.PRODUCT_CODE IS '产品编号';
  35. COMMENT ON COLUMN T_POSITION.STATUS IS '状态:ACTIVE-有效,CLOSED-已平仓';
  36. COMMENT ON COLUMN T_POSITION.VERSION IS '乐观锁版本号';
  37. COMMENT ON COLUMN T_POSITION.DELETED IS '逻辑删除:0-未删除,1-已删除';
  38. COMMENT ON COLUMN T_POSITION.CREATE_TIME IS '创建时间';
  39. COMMENT ON COLUMN T_POSITION.UPDATE_TIME IS '更新时间';
  40. -- 创建序列(Oracle 自增ID)
  41. CREATE SEQUENCE SEQ_T_POSITION START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
  42. -- 创建索引
  43. CREATE INDEX IDX_T_POSITION_TYPE ON T_POSITION(POSITION_TYPE);
  44. CREATE INDEX IDX_T_POSITION_STATUS ON T_POSITION(STATUS);
  45. CREATE INDEX IDX_T_POSITION_ACCOUNT ON T_POSITION(ACCOUNT_CODE);
  46. CREATE INDEX IDX_T_POSITION_PRODUCT ON T_POSITION(PRODUCT_CODE);