Sorry for the confusion,  index is not required for PK within MySql
So, this script is cleaner thanks to Alexander.

Christophe


Wendt, Alexander wrote:


OK .. no Attachement - then text (Sorry for that):


# --------------------------------------------------------


drop table if exists OBJECT;
drop table if exists CHILDREN;
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       int(11)       NOT NULL auto_increment,
 URI_STRING   varchar(255)  NOT NULL default '',
 PRIMARY KEY  (URI_ID),
 KEY URI_IX2  (URI_STRING)
) TYPE=InnoDB;

# --------------------------------------------------------

CREATE TABLE OBJECT (
 URI_ID      int(11)       NOT NULL default '0',
 CLASS_NAME  varchar(255)  NOT NULL default '',
 PRIMARY KEY (URI_ID)
) TYPE=InnoDB;

ALTER TABLE OBJECT ADD CONSTRAINT OBJECT_FK1 FOREIGN KEY OBJECT_FK1(URI_ID)
REFERENCES URI (URI_ID);

# --------------------------------------------------------

CREATE TABLE CHILDREN (
 URI_ID         int(11)  NOT NULL default '0',
 CHILD_URI_ID   int(11)  NOT NULL default '0',
 PRIMARY KEY    (URI_ID,CHILD_URI_ID),
 key CHILD_IX2  (CHILD_URI_ID)
) TYPE=InnoDB;

ALTER TABLE CHILDREN ADD CONSTRAINT CHILDREN_FK1 FOREIGN KEY
CHILDREN_FK1(URI_ID) REFERENCES URI (URI_ID);
ALTER TABLE CHILDREN ADD CONSTRAINT CHILDREN_FK2 FOREIGN KEY
CHILDREN_FK2(CHILD_URI_ID) REFERENCES URI (URI_ID);

# --------------------------------------------------------

CREATE TABLE LINKS (
 URI_ID        int(11)  NOT NULL default '0',
 LINK_TO_ID    int(11)  NOT NULL default '0',
 PRIMARY KEY   (URI_ID,LINK_TO_ID),
 key LINK_IX2  (LINK_TO_ID)
) TYPE=InnoDB;

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          int(11)     NOT NULL default '0',
 OBJECT_ID        int(11)     NOT NULL default '0',
 SUBJECT_ID       int(11)     NOT NULL default '0',
 TYPE_ID          int(11)     NOT NULL default '0',
 EXPIRATION_DATE  date        NOT NULL default '0000-00-00',
 IS_INHERITABLE   tinyint(1)  NOT NULL default '0',
 IS_EXCLUSIVE     tinyint(1)  NOT NULL default '0',
 PRIMARY KEY      (LOCK_ID),
 KEY LOCK_IX2     (OBJECT_ID),
 KEY LOCK_IX3     (SUBJECT_ID),
 KEY LOCK_IX4     (TYPE_ID)
) TYPE=InnoDB;

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      int(11)       NOT NULL auto_increment,
 BRANCH_STRING  varchar(255)  NOT NULL default '',
 PRIMARY KEY    (BRANCH_ID)
) TYPE=InnoDB;

# --------------------------------------------------------

CREATE TABLE LABEL (
 LABEL_ID      int(11)       NOT NULL auto_increment,
 LABEL_STRING  varchar(255)  NOT NULL default '',
 PRIMARY KEY   (LABEL_ID)
) TYPE=InnoDB;

# --------------------------------------------------------

CREATE TABLE VERSION (
 URI_ID        int(11)     NOT NULL default '0',
 IS_VERSIONED  tinyint(1)  NOT NULL default '0',
 PRIMARY KEY   (URI_ID)
) TYPE=InnoDB;

ALTER TABLE VERSION ADD CONSTRAINT REVISON_FK1 FOREIGN KEY
VERSION_FK1(URI_ID) REFERENCES URI (URI_ID);

# --------------------------------------------------------

CREATE TABLE VERSION_HISTORY (
 VERSION_ID   int(11)      NOT NULL auto_increment,
 URI_ID       int(11)      NOT NULL default '0',
 BRANCH_ID    int(11)      NOT NULL default '0',
 REVISION_NO  varchar(20)  NOT NULL default '',
 PRIMARY KEY  (VERSION_ID),
 UNIQUE KEY URI_ID (BRANCH_ID,URI_ID,REVISION_NO),
 KEY URI_ID_IX3 (URI_ID)
) TYPE=InnoDB;

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      int(11)  NOT NULL default '0',
 PREDECESSOR_ID  int(11)  NOT NULL default '0',
 PRIMARY KEY     (VERSION_ID,PREDECESSOR_ID),
 KEY PREDECESSOR_ID_IX2 (PREDECESSOR_ID)
) TYPE=InnoDB;

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   int(11)  NOT NULL default '0',
 LABEL_ID     int(11)  NOT NULL default '0',
 PRIMARY KEY  (VERSION_ID,LABEL_ID),
 KEY LABEL_ID_IX2 (LABEL_ID)
) TYPE=InnoDB;

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   int(11)  NOT NULL default '0',
 CONTENT      blob     NOT NULL,
 PRIMARY KEY  (VERSION_ID)
) TYPE=InnoDB;

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          int(11)       NOT NULL default '0',
 PROPERTY_NAMESPACE  varchar(50)   NOT NULL default '',
 PROPERTY_NAME       varchar(50)   NOT NULL default '',
 PROPERTY_VALUE      varchar(255)  NOT NULL default '',
 PROPERTY_TYPE       varchar(50)   NOT NULL default '',
 IS_PROTECTED        tinyint(1)    NOT NULL default '0',
 PRIMARY KEY         (VERSION_ID,PROPERTY_NAMESPACE,PROPERTY_NAME)
) TYPE=InnoDB;

ALTER TABLE PROPERTIES ADD CONSTRAINT PROPERTIES_FK1 FOREIGN KEY
PROPERTIES_FK1(VERSION_ID) REFERENCES VERSION_HISTORY (VERSION_ID);

# --------------------------------------------------------

CREATE TABLE PERMISSIONS (
 OBJECT_ID       int(11)      NOT NULL default '0',
 SUBJECT_ID      int(11)      NOT NULL default '0',
 ACTION_ID       int(11)      NOT NULL default '0',
 VERSION_NO      varchar(20)  default NULL,
 IS_INHERITABLE  tinyint(1)   NOT NULL default '0',
 IS_NEGATIVE     tinyint(1)   NOT NULL default '0',
 SUCCESSION      int(11)      NOT NULL default '0',
 PRIMARY KEY     (SUBJECT_ID,OBJECT_ID,ACTION_ID),
 UNIQUE KEY OBJECT_ID_2 (OBJECT_ID,SUCCESSION),
 KEY ACTION_ID_IX3 (ACTION_ID)
) TYPE=InnoDB;

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]







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



Reply via email to