Project

General

Profile

« Previous | Next » 

Revision 11221

fix: schemas/VegCore/ERD/VegCore.ERD.mwb: project: allow it to have a dataset rather than being one, because projects do not always have separate attribution requirements (e.g. in Madidi they don't). this also fixes a bug where projects whose datasets had a parent dataset (e.g. VegBank) would need a dummy event for that parent dataset so that the fkeys on both dataset.parent->dataset and event.parent->event would be satisfied. added project__unique constraint on name within dataset.

View differences:

VegCore.my.sql
158 158
  KEY `fk_dataset_dataset1_idx` (`parent`),
159 159
  KEY `fk_source_party2_idx` (`first_publisher`),
160 160
  KEY `dataset_dataset_source_fkey1_idx` (`dataset_source`),
161
  CONSTRAINT `fk_source_party2` FOREIGN KEY (`first_publisher`) REFERENCES `source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
162
  CONSTRAINT `fk_source_party_list1` FOREIGN KEY (`data_owners`) REFERENCES `party_list` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
163 161
  CONSTRAINT `dataset_dataset_source_fkey1` FOREIGN KEY (`dataset_source`) REFERENCES `source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
164 162
  CONSTRAINT `fk_dataset_dataset1` FOREIGN KEY (`parent`) REFERENCES `dataset` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
165 163
  CONSTRAINT `fk_dataset_source1` FOREIGN KEY (`id`) REFERENCES `source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
166
  CONSTRAINT `fk_dataset_traceable1` FOREIGN KEY (`id`) REFERENCES `traceable` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
167
  CONSTRAINT `fk_source_party1` FOREIGN KEY (`contacts`) REFERENCES `party_list` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
164
  CONSTRAINT `fk_source_party1` FOREIGN KEY (`contacts`) REFERENCES `party_list` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
165
  CONSTRAINT `fk_source_party2` FOREIGN KEY (`first_publisher`) REFERENCES `source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
166
  CONSTRAINT `fk_source_party_list1` FOREIGN KEY (`data_owners`) REFERENCES `party_list` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
168 167
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='a collection of records from the same place, with the same attribution requirements';
169 168
/*!40101 SET character_set_client = @saved_cs_client */;
170 169

  
......
713 712
/*!40101 SET character_set_client = utf8 */;
714 713
CREATE TABLE `project` (
715 714
  `id` varbinary(767) NOT NULL,
715
  `name` varbinary(767) NOT NULL,
716
  `dataset` varbinary(767) DEFAULT NULL,
716 717
  `info` set('hstore') COLLATE utf8_bin DEFAULT NULL,
717 718
  PRIMARY KEY (`id`),
718
  CONSTRAINT `project_id_fkey1` FOREIGN KEY (`id`) REFERENCES `dataset` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
719
  UNIQUE KEY `project__unique` (`dataset`,`name`),
720
  KEY `project_id_fkey1_idx` (`dataset`),
721
  CONSTRAINT `project_id_fkey1` FOREIGN KEY (`dataset`) REFERENCES `dataset` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
719 722
  CONSTRAINT `fk_project_event1` FOREIGN KEY (`id`) REFERENCES `event` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
720 723
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='A "project established to collect vegetation plot data. Each plot originates as part of a project." ("VegBank":http://vegbank.org/vegbank/views/dba_tabledescription_detail.jsp?view=detail&wparam=project&entity=dba_tabledescription&where=where_tablename)';
721 724
/*!40101 SET character_set_client = @saved_cs_client */;

Also available in: Unified diff