
DROP TABLE PAGES;
DROP TABLE CONTENTS;
DROP TABLE HISTORY;
DROP TABLE ATTACHED;
DROP TABLE ATT_LINKS;
DROP TABLE LINKS;
DROP TABLE M_OWNERS;
DROP TABLE M_PAGE_TYPES;
DROP TABLE M_DATA_TYPES;

CREATE CACHED TABLE PAGES
(
    PAGE_ID INTEGER NOT NULL IDENTITY PRIMARY KEY,
    PAGE_TYPE INTEGER,
    CONTENT_ID INTEGER,
    CSS VARCHAR(256),
    TITLE VARCHAR(256) NOT NULL,
    OWNER_ID INTEGER,
    FROZEN BIT DEFAULT FALSE,
    USE_PASSWD BIT DEFAULT FALSE,
    PAGE_LOCKED BIT DEFAULT FALSE,
    DELETE_FLAG BIT DEFAULT FALSE,
    EDIT_POINT INTEGER DEFAULT 0,
    CREATE_DATE DATETIME DEFAULT 'current_timestamp',
    CREATE_BY VARCHAR(64),
    UPDATE_DATE DATETIME DEFAULT 'current_timestamp',
    UPDATE_BY VARCHAR(64)
);

CREATE INDEX IDX_PAGES_TITLE ON PAGES (TITLE);
CREATE INDEX IDX_CONTENT_ID ON PAGES (CONTENT_ID);
CREATE INDEX IDX_OWNER_ID ON PAGES (OWNER_ID);
CREATE INDEX IDX_HIT_POINT ON PAGES (HIT_POINT);
CREATE INDEX IDX_EDIT_POINT ON PAGES (EDIT_POINT);


CREATE CACHED TABLE HITS
(
    PAGE_ID INTEGER NOT NULL,
    HIT_POINT INTEGER DEFAULT 0,
    PRIMARY KEY(PAGE_ID)
);

CREATE CACHED TABLE CONTENTS
(
    CONTENT_ID INTEGER NOT NULL IDENTITY PRIMARY KEY,
    RAW_DAT VARCHAR NOT NULL,
    QRY_DAT VARCHAR NOT NULL,
    DATA_SIZE INTEGER,
    CREATE_DATE DATETIME DEFAULT 'current_timestamp',
    CREATE_BY VARCHAR(64)
);

CREATE INDEX IDX_RAW_DAT ON CONTENTS (RAW_DAT);
CREATE INDEX IDX_QRY_DAT ON CONTENTS (QRY_DAT);

CREATE CACHED TABLE HISTORY
(
    PAGE_ID INTEGER NOT NULL,
    SEQ_ID INTEGER NOT NULL,
    CONTENT_ID INTEGER NOT NULL,
    PRIMARY KEY(PAGE_ID, SEQ_ID)
);

CREATE INDEX IDX_CONTENT_ID ON HISTORY (CONTENT_ID);

CREATE CACHED TABLE ATT_LINKS
(
    PAGE_ID INTEGER NOT NULL,
    ATT_ID INTEGER NOT NULL,
    CREATE_DATE DATETIME DEFAULT 'current_timestamp',
    CREATE_BY VARCHAR(64),
    PRIMARY KEY(PAGE_ID, ATT_ID)
);


CREATE CACHED TABLE ATTACHED
(
    ATT_ID INTEGER NOT NULL IDENTITY PRIMARY KEY,
    DATA_TYPE INTEGER,
    PHY_PATH VARCHAR(1024) NOT NULL,
    PHY_NAME VARCHAR(128) NOT NULL,
    FILE_NAME VARCHAR(32) NOT NULL,
    DATA_SIZE INTEGER NOT NULL,
    RAW_DAT OBJECT,
    LOB_ID INTEGER,
    CREATE_DATE DATETIME DEFAULT 'current_timestamp',
    CREATE_BY VARCHAR(64)
);

CREATE CACHED TABLE LINKS
(
    PARENT_ID INTEGER NOT NULL,
    CHILD_ID INTEGER NOT NULL,
    CREATE_DATE DATETIME DEFAULT 'current_timestamp',
    CREATE_BY VARCHAR(64)
);

CREATE INDEX IDX_PARENT_ID ON LINKS (PARENT_ID);
CREATE INDEX IDX_CHILD_ID ON LINKS (CHILD_ID);

CREATE CACHED TABLE M_OWNERS
(
    OWNER_ID INTEGER NOT NULL IDENTITY PRIMARY KEY,
    DESC VARCHAR(64)
);

CREATE CACHED TABLE M_PAGE_TYPES
(
    PAGE_TYPE INTEGER NOT NULL IDENTITY PRIMARY KEY,
    DESC VARCHAR(64)
);

CREATE CACHED TABLE M_DATA_TYPES
(
    DATA_TYPE INTEGER NOT NULL IDENTITY PRIMARY KEY,
    DESC VARCHAR(64)
);

