ozeigermann    2004/04/21 02:29:40

  Added:       src/conf/schema MySql-4.1-Schema.sql
  Log:
  Added (untested) 4.1 version supporting UTF-8 contributed by Jacob Lund.
  
  Revision  Changes    Path
  1.1                  jakarta-slide/src/conf/schema/MySql-4.1-Schema.sql
  
  Index: MySql-4.1-Schema.sql
  ===================================================================
  # --------------------------------------------------------
  
  drop table if exists OBJECT;
  drop table if exists CHILDREN;
  drop table if exists BINDING;
  drop table if exists PARENT_BINDING;
  drop table if exists LINKS;
  drop table if exists LOCKS;
  drop table if exists VERSION_CONTENT;
  drop table if exists PROPERTIES;
  drop table if exists PERMISSIONS;
  drop table if exists VERSION_PREDS;
  drop table if exists VERSION_LABELS;
  drop table if exists VERSION_HISTORY;
  drop table if exists VERSION;
  drop table if exists BRANCH;
  drop table if exists LABEL;
  drop table if exists URI;
  
  # --------------------------------------------------------
  
  CREATE TABLE URI (
    URI_ID       bigint       NOT NULL auto_increment,
    URI_STRING   varchar(255)  NOT NULL CHARACTER SET uft8 COLLATE utf8_general_ci,
    PRIMARY KEY  (URI_ID),
    KEY URI_IX2  (URI_STRING)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  # --------------------------------------------------------
  
  CREATE TABLE OBJECT (
    URI_ID      bigint       NOT NULL,
    CLASS_NAME  varchar(255)  NOT NULL CHARACTER SET utf8 COLLATE utf8_general_ci,
    PRIMARY KEY (URI_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE OBJECT ADD CONSTRAINT OBJECT_FK1 FOREIGN KEY OBJECT_FK1(URI_ID)
  REFERENCES URI (URI_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE BINDING (
    URI_ID         bigint  NOT NULL,
    NAME           varchar(255)  NOT NULL CHARACTER SET utf8 COLLATE utf8_general_ci,
    CHILD_UURI_ID  bigint  NOT NULL,
    PRIMARY KEY    (URI_ID, NAME, CHILD_UURI_ID),
    KEY BINDING_IX  (CHILD_UURI_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE BINDING ADD CONSTRAINT BINDING_FK1 FOREIGN KEY
  BINDING_FK1(URI_ID) REFERENCES URI (URI_ID);
  ALTER TABLE BINDING ADD CONSTRAINT BINDING_FK2 FOREIGN KEY
  BINDING_FK2(CHILD_UURI_ID) REFERENCES URI (URI_ID);
  
  CREATE TABLE PARENT_BINDING (
    URI_ID         bigint  NOT NULL,
    NAME           varchar(255)  NOT NULL CHARACTER SET utf8 COLLATE utf8_general_ci,
    PARENT_UURI_ID bigint  NOT NULL,
    PRIMARY KEY    (URI_ID, NAME, PARENT_UURI_ID),
    KEY PARENT_BINDING_IX  (PARENT_UURI_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE PARENT_BINDING ADD CONSTRAINT PARENT_BINDING_FK1 FOREIGN KEY
  PARENT_BINDING_FK1(URI_ID) REFERENCES URI (URI_ID);
  ALTER TABLE PARENT_BINDING ADD CONSTRAINT PARENT_BINDING_FK2 FOREIGN KEY
  PARENT_BINDING_FK2(PARENT_UURI_ID) REFERENCES URI (URI_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE LINKS (
    URI_ID        bigint  NOT NULL,
    LINK_TO_ID    bigint  NOT NULL,
    PRIMARY KEY   (URI_ID,LINK_TO_ID),
    key LINK_IX2  (LINK_TO_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE LINKS ADD CONSTRAINT LINK_FK1 FOREIGN KEY LINK_FK1(URI_ID)
  REFERENCES URI (URI_ID);
  ALTER TABLE LINKS ADD CONSTRAINT LINK_FK2 FOREIGN KEY LINK_FK2(LINK_TO_ID)
  REFERENCES URI (URI_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE LOCKS (
    LOCK_ID          bigint     NOT NULL,
    OBJECT_ID        bigint     NOT NULL,
    SUBJECT_ID       bigint     NOT NULL,
    TYPE_ID          bigint     NOT NULL,
    EXPIRATION_DATE  bigint        NOT NULL,
    IS_INHERITABLE   tinyint(1)  NOT NULL,
    IS_EXCLUSIVE     tinyint(1)  NOT NULL,
    OWNER            varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci, 
    PRIMARY KEY      (LOCK_ID),
    KEY LOCK_IX2     (OBJECT_ID),
    KEY LOCK_IX3     (SUBJECT_ID),
    KEY LOCK_IX4     (TYPE_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE LOCKS ADD CONSTRAINT LOCK_FK1 FOREIGN KEY LOCK_FK1(LOCK_ID)
  REFERENCES URI (URI_ID);
  ALTER TABLE LOCKS ADD CONSTRAINT LOCK_FK2 FOREIGN KEY LOCK_FK2(OBJECT_ID)
  REFERENCES URI (URI_ID);
  ALTER TABLE LOCKS ADD CONSTRAINT LOCK_FK3 FOREIGN KEY LOCK_FK3(SUBJECT_ID)
  REFERENCES URI (URI_ID);
  ALTER TABLE LOCKS ADD CONSTRAINT LOCK_FK4 FOREIGN KEY LOCK_FK4(TYPE_ID)
  REFERENCES URI (URI_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE BRANCH (
    BRANCH_ID      bigint       NOT NULL auto_increment,
    BRANCH_STRING  varchar(255)  NOT NULL CHARACTER SET utf8 COLLATE utf8_general_ci,
    PRIMARY KEY    (BRANCH_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  # --------------------------------------------------------
  
  CREATE TABLE LABEL (
    LABEL_ID      bigint       NOT NULL auto_increment,
    LABEL_STRING  varchar(255)  NOT NULL CHARACTER SET utf8 COLLATE utf8_general_ci,
    PRIMARY KEY   (LABEL_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  # --------------------------------------------------------
  
  CREATE TABLE VERSION (
    URI_ID        bigint     NOT NULL,
    IS_VERSIONED  tinyint(1)  NOT NULL,
    PRIMARY KEY   (URI_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE VERSION ADD CONSTRAINT REVISON_FK1 FOREIGN KEY
  VERSION_FK1(URI_ID) REFERENCES URI (URI_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE VERSION_HISTORY (
    VERSION_ID   bigint      NOT NULL auto_increment,
    URI_ID       bigint      NOT NULL,
    BRANCH_ID    bigint      NOT NULL,
    REVISION_NO  varchar(20)  NOT NULL CHARACTER SET utf8 COLLATE utf8_general_ci,
    PRIMARY KEY  (VERSION_ID),
    UNIQUE KEY URI_ID (BRANCH_ID,URI_ID,REVISION_NO),
    KEY URI_ID_IX3 (URI_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE VERSION_HISTORY ADD CONSTRAINT VERSION_HISTORY_FK1 FOREIGN KEY
  VERSION_HISTORY_FK1(URI_ID) REFERENCES URI (URI_ID);
  ALTER TABLE VERSION_HISTORY ADD CONSTRAINT VERSION_HISTORY_FK2 FOREIGN KEY
  VERSION_HISTORY_FK2(BRANCH_ID) REFERENCES BRANCH (BRANCH_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE VERSION_PREDS (
    VERSION_ID      bigint  NOT NULL,
    PREDECESSOR_ID  bigint  NOT NULL,
    PRIMARY KEY     (VERSION_ID,PREDECESSOR_ID),
    KEY PREDECESSOR_ID_IX2 (PREDECESSOR_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE VERSION_PREDS ADD CONSTRAINT REVISON_PREDS_FK1 FOREIGN KEY
  VERSION_PREDS_FK1(VERSION_ID) REFERENCES VERSION_HISTORY (VERSION_ID);
  ALTER TABLE VERSION_PREDS ADD CONSTRAINT REVISON_PREDS_FK2 FOREIGN KEY
  VERSION_PREDS_FK2(PREDECESSOR_ID) REFERENCES VERSION_HISTORY (VERSION_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE VERSION_LABELS (
    VERSION_ID   bigint  NOT NULL,
    LABEL_ID     bigint  NOT NULL,
    PRIMARY KEY  (VERSION_ID,LABEL_ID),
    KEY LABEL_ID_IX2 (LABEL_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE VERSION_LABELS ADD CONSTRAINT REVISON_LABELS_FK1 FOREIGN KEY
  VERSION_LABELS_FK1(VERSION_ID) REFERENCES VERSION_HISTORY (VERSION_ID);
  ALTER TABLE VERSION_LABELS ADD CONSTRAINT REVISON_LABELS_FK2 FOREIGN KEY
  VERSION_LABELS_FK2(LABEL_ID) REFERENCES LABEL (LABEL_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE VERSION_CONTENT (
    VERSION_ID   bigint  NOT NULL,
    CONTENT      blob     NOT NULL,
    PRIMARY KEY  (VERSION_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE VERSION_CONTENT ADD CONSTRAINT REVISON_CONTENT_FK1 FOREIGN KEY
  VERSION_CONTENT_FK1(VERSION_ID) REFERENCES VERSION_HISTORY (VERSION_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE PROPERTIES (
    VERSION_ID          bigint       NOT NULL,
    PROPERTY_NAMESPACE  varchar(50)   NOT NULL CHARACTER SET utf8 COLLATE 
utf8_general_ci,
    PROPERTY_NAME       varchar(50)   NOT NULL CHARACTER SET utf8 COLLATE 
utf8_general_ci,
    PROPERTY_VALUE      varchar(255)  NOT NULL CHARACTER SET utf8 COLLATE 
utf8_general_ci,
    PROPERTY_TYPE       varchar(50)   NOT NULL CHARACTER SET utf8 COLLATE 
utf8_general_ci,
    IS_PROTECTED        tinyint(1)    NOT NULL,
    PRIMARY KEY         (VERSION_ID,PROPERTY_NAMESPACE,PROPERTY_NAME)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE PROPERTIES ADD CONSTRAINT PROPERTIES_FK1 FOREIGN KEY
  PROPERTIES_FK1(VERSION_ID) REFERENCES VERSION_HISTORY (VERSION_ID);
  
  # --------------------------------------------------------
  
  CREATE TABLE PERMISSIONS (
    OBJECT_ID       bigint      NOT NULL,
    SUBJECT_ID      bigint      NOT NULL,
    ACTION_ID       bigint      NOT NULL,
    VERSION_NO      varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci,
    IS_INHERITABLE  tinyint(1)   NOT NULL,
    IS_NEGATIVE     tinyint(1)   NOT NULL,
    SUCCESSION      int         NOT NULL,
    PRIMARY KEY     (SUBJECT_ID,OBJECT_ID,ACTION_ID),
    UNIQUE KEY OBJECT_ID_2 (OBJECT_ID,SUCCESSION),
    KEY ACTION_ID_IX3 (ACTION_ID)
  ) TYPE=InnoDB CHARACTER SET utf8;
  
  ALTER TABLE PERMISSIONS ADD CONSTRAINT PERMISSIONS_FK1 FOREIGN KEY
  PERMISSIONS_FK1(OBJECT_ID) REFERENCES URI (URI_ID);
  ALTER TABLE PERMISSIONS ADD CONSTRAINT PERMISSIONS_FK2 FOREIGN KEY
  PERMISSIONS_FK2(SUBJECT_ID) REFERENCES URI (URI_ID);
  ALTER TABLE PERMISSIONS ADD CONSTRAINT PERMISSIONS_FK3 FOREIGN KEY
  PERMISSIONS_FK3(ACTION_ID) REFERENCES URI (URI_ID); 
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to