|
From: Chris S. <sto...@pc...> - 2005-08-04 22:05:33
|
Dear Jian,
No problem with your first two proposals to add comment_name_id and
AAFeatureComment. Should be able to address in an upcoming minor
release. However, these will be ALTER TABLE to add comment_name_id to
existing tables NAComment and NAFeatureComment rather than creating
tables.
Should also be no problem accepting the third proposal for
AAFeatureRelationship and AAFeatRelationshipType however our policy
has been to NOT add tables just for consistency in order to avoid
schema bloat with tables that no one uses. Do you (or anyone else)
have use cases for these? It will help in the documentation.
Thanks,
Chris
To store curation comments has been our concern for a while. By
looking at NA
and AA comment tables, they couldn't meet such needs.
1. there is no way you can tell the type of comments from NAComment and
NAFeatureComment tables so that comment_name_id is needed as a
foreign key
reference to CommentName table.
2. To add curation comments to AA features from protein annotation,
new table
AAFeatureComment is needed.
3. To keep feature relationship, there are tables
NAFEATRELATIONSHIPTYPE and
NAFEATURERELATIONSHIP. But there are no such tables on AA. To make
consistent
and systematic schema and have potential relationship between AA
features,
similar tables AAFEATRELATIONSHIPTYPE and AAFEATURERELATIONSHIP are
needed.
Following are SQL for those changes.
CREATE TABLE DoTS.NAComment (
NA_COMMENT_ID NUMBER(10,0) NOT NULL,
NA_SEQUENCE_ID NUMBER(10,0) NOT NULL,
COMMENT_NAME_ID(10,0),
COMMENT_STRING CLOB NOT NULL,
MODIFICATION_DATE DATE NOT NULL,
USER_READ NUMBER(1,0) NOT NULL,
USER_WRITE NUMBER(1,0) NOT NULL,
GROUP_READ NUMBER(1,0) NOT NULL,
GROUP_WRITE NUMBER(1,0) NOT NULL,
OTHER_READ NUMBER(1,0) NOT NULL,
OTHER_WRITE NUMBER(1,0) NOT NULL,
ROW_USER_ID NUMBER(12,0) NOT NULL,
ROW_GROUP_ID NUMBER(4,0) NOT NULL,
ROW_PROJECT_ID NUMBER(4,0) NOT NULL,
ROW_ALG_INVOCATION_ID NUMBER(12,0) NOT NULL);
ALTER TABLE DOTS.NAComment ADD CONSTRAINT NAComment_FK
FOREIGN KEY (COMMENT_NAME_ID) REFERENCES DOTS.CommentName
(COMMENT_NAME_ID);
CREATE TABLE DoTS.NAFeatureComment (
NA_Feature_COMMENT_ID NUMBER(10,0) NOT NULL,
NA_Feature_ID NUMBER(10,0) NOT NULL,
COMMENT_NAME_ID(10,0),
COMMENT_STRING CLOB NOT NULL,
MODIFICATION_DATE DATE NOT NULL,
USER_READ NUMBER(1,0) NOT NULL,
USER_WRITE NUMBER(1,0) NOT NULL,
GROUP_READ NUMBER(1,0) NOT NULL,
GROUP_WRITE NUMBER(1,0) NOT NULL,
OTHER_READ NUMBER(1,0) NOT NULL,
OTHER_WRITE NUMBER(1,0) NOT NULL,
ROW_USER_ID NUMBER(12,0) NOT NULL,
ROW_GROUP_ID NUMBER(4,0) NOT NULL,
ROW_PROJECT_ID NUMBER(4,0) NOT NULL,
ROW_ALG_INVOCATION_ID NUMBER(12,0) NOT NULL);
ALTER TABLE DOTS.NAFeatureComment ADD CONSTRAINT NAFeatureComment_FK
FOREIGN KEY (COMMENT_NAME_ID) REFERENCES DOTS.CommentName
(COMMENT_NAME_ID);
CREATE TABLE DoTS.AAFeatureComment (
AA_Feature_COMMENT_ID NUMBER(10,0) NOT NULL,
AA_Feature_ID NUMBER(10,0) NOT NULL,
COMMENT_NAME_ID(10,0),
COMMENT_STRING CLOB NOT NULL,
MODIFICATION_DATE DATE NOT NULL,
USER_READ NUMBER(1,0) NOT NULL,
USER_WRITE NUMBER(1,0) NOT NULL,
GROUP_READ NUMBER(1,0) NOT NULL,
GROUP_WRITE NUMBER(1,0) NOT NULL,
OTHER_READ NUMBER(1,0) NOT NULL,
OTHER_WRITE NUMBER(1,0) NOT NULL,
ROW_USER_ID NUMBER(12,0) NOT NULL,
ROW_GROUP_ID NUMBER(4,0) NOT NULL,
ROW_PROJECT_ID NUMBER(4,0) NOT NULL,
ROW_ALG_INVOCATION_ID NUMBER(12,0) NOT NULL);
ALTER TABLE DOTS.AAFeatureComment ADD CONSTRAINT AAFeatureComment_FK
FOREIGN KEY (COMMENT_NAME_ID) REFERENCES DOTS.CommentName
(COMMENT_NAME_ID);
CREATE TABLE DoTS.AAFeatRelationshipType (
AA_FEAT_RELATIONSHIP_TYPE_ID NUMBER(10,0) PRIMARY KEY,
NAME VARCHAR2(255) NOT NULL,
DESCRIPTION CLOB NOT NULL,
MODIFICATION_DATE DATE NOT NULL,
USER_READ NUMBER(1,0) NOT NULL,
USER_WRITE NUMBER(1,0) NOT NULL,
GROUP_READ NUMBER(1,0) NOT NULL,
GROUP_WRITE NUMBER(1,0) NOT NULL,
OTHER_READ NUMBER(1,0) NOT NULL,
OTHER_WRITE NUMBER(1,0) NOT NULL,
ROW_USER_ID NUMBER(12,0) NOT NULL,
ROW_GROUP_ID NUMBER(4,0) NOT NULL,
ROW_PROJECT_ID NUMBER(4,0) NOT NULL,
ROW_ALG_INVOCATION_ID NUMBER(12,0) NOT NULL);
CREATE TABLE DoTS.AAFeatureRelationship (
AA_Feature_RELATIONSHIP_ID NUMBER(10,0) PRIMARY KEY,
PARENT_AA_Feature_ID NUMBER(10,0) NOT NULL,
CHILD_AA_Feature_ID NUMBER(10,0) NOT NULL,
AA_FEAT_RELATIONSHIP_TYPE_ID NUMBER(10,0) NOT NULL,
ORDINAL NUMBER(10,0) ,
MODIFICATION_DATE DATE NOT NULL,
USER_READ NUMBER(1,0) NOT NULL,
USER_WRITE NUMBER(1,0) NOT NULL,
GROUP_READ NUMBER(1,0) NOT NULL,
GROUP_WRITE NUMBER(1,0) NOT NULL,
OTHER_READ NUMBER(1,0) NOT NULL,
OTHER_WRITE NUMBER(1,0) NOT NULL,
ROW_USER_ID NUMBER(12,0) NOT NULL,
ROW_GROUP_ID NUMBER(4,0) NOT NULL,
ROW_PROJECT_ID NUMBER(4,0) NOT NULL,
ROW_ALG_INVOCATION_ID NUMBER(12,0) NOT NULL);
ALTER TABLE DoTS.AAFeatureRelationship ADD CONSTRAINT
AAFeatureRELATIONSHIP_FK1
FOREIGN KEY (PARENT_AA_Feature_ID) REFERENCES DoTS.AAFeatureImp
(AA_Feature_ID);
ALTER TABLE DoTS.AAFeatureRelationship ADD CONSTRAINT
AAFeatureRELATIONSHIP_FK2
FOREIGN KEY (CHILD_AA_Feature_ID) REFERENCES DoTS.AAFeatureImp
(AA_Feature_ID);
ALTER TABLE DoTS.AAFeatureRelationship ADD CONSTRAINT
AAFeatureRELATIONSHIP_FK3
FOREIGN KEY (AA_FEAT_RELATIONSHIP_TYPE_ID) REFERENCES
DoTS.AAFeatRelationshipType (AA_FEAT_RELATIONSHIP_TYPE_ID); |