root/trunk/mpdb-server/schema/metpetdb-core.sql

Revision 1349, 9.9 KB (checked in by Dennis, 3 years ago)

added a new column to metamorphic regions for the label location and set the locations to be in a spot within the polygon
make sure to run the 04_26_10.sql migration

  • Property svn:executable set to *
Line 
1CREATE TABLE regions
2(
3  region_id INT2 NOT NULL,
4  name VARCHAR(100) NOT NULL UNIQUE,
5  CONSTRAINT regions_sk PRIMARY KEY (region_id)
6) WITHOUT OIDS;
7
8CREATE TABLE metamorphic_grades
9(
10  metamorphic_grade_id INT2 NOT NULL,
11  name VARCHAR(100) NOT NULL,
12  CONSTRAINT metamorphic_grades_sk PRIMARY KEY (metamorphic_grade_id),
13  CONSTRAINT metamorphic_grades_name_key UNIQUE (name)
14) WITHOUT OIDS;
15
16CREATE TABLE reference
17(
18  reference_id INT8 NOT NULL,
19  name VARCHAR(100) NOT NULL,
20  CONSTRAINT references_sk PRIMARY KEY (reference_id),
21  CONSTRAINT references_name_key UNIQUE (name)
22) WITHOUT OIDS;
23
24CREATE TABLE rock_type
25(
26        rock_type_id int2 NOT NULL,
27        rock_type VARCHAR(100) NOT NULL,
28        CONSTRAINT rock_types_sk PRIMARY KEY (rock_type_id),
29    CONSTRAINT rock_types_rock_type_key UNIQUE (rock_type)
30) WITHOUT OIDS;
31
32CREATE TABLE subsample_type
33(
34        subsample_type_id int2 NOT NULL,
35        subsample_type VARCHAR(100) NOT NULL,
36        CONSTRAINT subsample_types_sk PRIMARY KEY (subsample_type_id),
37    CONSTRAINT subsample_types_subsample_type_key UNIQUE (subsample_type)
38) WITHOUT OIDS;
39
40CREATE TABLE metamorphic_regions
41(
42  metamorphic_region_id INT8 NOT NULL,
43  name VARCHAR(50) NOT NULL UNIQUE,
44  CONSTRAINT metamorphic_regions_sk PRIMARY KEY (metamorphic_region_id),
45  CONSTRAINT metamorphic_regions_name_key UNIQUE (name),
46  description text
47)WITHOUT OIDS;
48
49--add a column of gis polygons to the metamorhpic_regions table
50SELECT AddGeometryColumn('metamorphic_regions', 'shape', 4326, 'POLYGON', 2);
51SELECT AddGeometryColumn('metamorphic_regions', 'label_location', 4326, 'POINT', 2);
52
53CREATE TABLE samples
54(
55  sample_id INT8 NOT NULL,
56  version INT4 NOT NULL,
57  sesar_number CHAR(9),
58  public_data CHAR(1) CHECK (public_data IN ('Y','N')) NOT NULL,
59  collection_date TIMESTAMP,
60  date_precision INT2,
61  number VARCHAR(35) NOT NULL,
62  rock_type_id int2 NOT NULL,
63  user_id INT4 NOT NULL,
64  location_error FLOAT4,
65  country VARCHAR(100),
66  description text,
67  collector VARCHAR(50),
68  metamorphic_region_id INT8,
69  collector_id INT4,
70  location_text VARCHAR(50),
71  CONSTRAINT samples_sk PRIMARY KEY (sample_id),
72  CONSTRAINT samples_fk_user FOREIGN KEY (user_id)
73    REFERENCES users (user_id),
74  CONSTRAINT samples_fk_collector FOREIGN KEY (collector_id)
75    REFERENCES users (user_id),
76  CONSTRAINT samples_fk_rock_type FOREIGN KEY (rock_type_id)
77    REFERENCES rock_type(rock_type_id)
78) WITHOUT OIDS;
79
80CREATE TABLE sample_aliases
81(
82  sample_alias_id INT8 NOT NULL,
83  sample_id INT8,
84  alias VARCHAR(35) NOT NULL,
85  CONSTRAINT sample_aliases_sk PRIMARY KEY (sample_alias_id),
86  CONSTRAINT sample_aliases_nk UNIQUE (sample_id, alias),
87  CONSTRAINT sample_id_fk_sample FOREIGN KEY (sample_id)
88  REFERENCES samples (sample_id)
89) WITHOUT OIDS;
90
91-- Use WGS 84 (srid = 4326)
92SELECT AddGeometryColumn('samples', 'location', 4326, 'POINT', 2);
93CREATE INDEX samples_ix_loc ON samples
94  USING GIST (location GIST_GEOMETRY_OPS);
95ALTER TABLE samples ALTER location SET NOT NULL;
96CREATE UNIQUE INDEX samples_nk_number on samples (user_id, lower(number));
97
98CREATE TABLE sample_comments
99(
100        comment_id INT8 NOT NULL,
101        sample_id INT8 NOT NULL,
102        user_id INT8 NOT NULL,
103        comment_text TEXT NOT NULL,
104        date_added TIMESTAMP,
105        CONSTRAINT sample_comments_sk PRIMARY KEY (comment_id),
106        CONSTRAINT sample_comments_fk_sample FOREIGN KEY (sample_id)
107    REFERENCES samples (sample_id),
108    CONSTRAINT sample_comments_fk_user FOREIGN KEY (user_id)
109    REFERENCES users (user_id)
110) WITHOUT OIDS;
111
112CREATE TABLE subsamples
113(
114  subsample_id INT8 NOT NULL,
115  version INT4 NOT NULL,
116  public_data CHAR(1) CHECK (public_data IN ('Y','N')) NOT NULL,
117  sample_id INT8 NOT NULL,
118  user_id INT4 NOT NULL,
119  grid_id INT8,
120  name VARCHAR(100) NOT NULL,
121  subsample_type_id int2 NOT NULL,
122  CONSTRAINT subsamples_fk_user FOREIGN KEY (user_id)
123    REFERENCES users (user_id),
124  CONSTRAINT subsamples_sk PRIMARY KEY (subsample_id),
125  CONSTRAINT subsamples_fk_sample FOREIGN KEY (sample_id)
126    REFERENCES samples (sample_id),
127  CONSTRAINT subsamples_fk_subsample_type FOREIGN KEY (subsample_type_id)
128    REFERENCES subsample_type (subsample_type_id)
129) WITHOUT OIDS;
130CREATE UNIQUE INDEX subsamples_nk_name on subsamples (sample_id, lower(name));
131
132CREATE TABLE projects
133(
134  project_id INT4 NOT NULL,
135  version INT4 NOT NULL,
136  user_id INT4 NOT NULL,
137  name VARCHAR(50) NOT NULL,
138  description VARCHAR(300),
139  CONSTRAINT projects_sk PRIMARY KEY (project_id),
140  CONSTRAINT projects_nk UNIQUE (user_id, name),
141  CONSTRAINT projects_fk_user FOREIGN KEY (user_id)
142    REFERENCES users (user_id)
143) WITHOUT OIDS;
144
145CREATE TABLE project_members
146(
147  project_id INT4 NOT NULL,
148  user_id INT4 NOT NULL,
149  CONSTRAINT project_members_nk PRIMARY KEY (project_id, user_id),
150  CONSTRAINT project_members_fk_proj FOREIGN KEY (project_id)
151    REFERENCES projects (project_id),
152  CONSTRAINT project_members_fk_user FOREIGN KEY (user_id)
153    REFERENCES users (user_id)
154) WITHOUT OIDS;
155
156CREATE TABLE project_samples
157(
158  project_id INT4 NOT NULL,
159  sample_id INT8 NOT NULL,
160  CONSTRAINT project_samples_fk_proj FOREIGN KEY (project_id)
161    REFERENCES projects (project_id)
162    ON DELETE CASCADE,
163  CONSTRAINT project_samples_fk_samp FOREIGN KEY (sample_id)
164    REFERENCES samples (sample_id)
165) WITHOUT OIDS;
166
167CREATE TABLE project_invites
168(
169  invite_id INT4 NOT NULL,
170  project_id INT4 NOT NULL,
171  user_id INT4 NOT NULL,
172  action_timestamp TIMESTAMP NOT NULL,
173  status VARCHAR(32),
174  CONSTRAINT project_invites_nk PRIMARY KEY (invite_id),
175  CONSTRAINT project_invites_fk_proj FOREIGN KEY (project_id)
176    REFERENCES projects (project_id),
177  CONSTRAINT project_invites_fk_user FOREIGN KEY (user_id)
178    REFERENCES users (user_id)
179) WITHOUT OIDS;
180
181CREATE TABLE sample_minerals
182(
183  mineral_id INT2 NOT NULL,
184  sample_id INT8 NOT NULL,
185  amount VARCHAR(30),
186  CONSTRAINT sample_minerals_nk PRIMARY KEY (mineral_id, sample_id),
187  CONSTRAINT mineral_samples_fk_min FOREIGN KEY (mineral_id)
188    REFERENCES minerals (mineral_id)
189    ON DELETE CASCADE,
190  CONSTRAINT mineral_samples_fk_samp FOREIGN KEY (sample_id)
191    REFERENCES samples (sample_id)
192) WITHOUT OIDS;
193
194CREATE TABLE sample_regions
195(
196  sample_id INT8,
197  region_id INT2,
198  CONSTRAINT sample_region_pk PRIMARY KEY (sample_id, region_id),
199  CONSTRAINT sample_regions_fk_sample FOREIGN KEY (sample_id)
200    REFERENCES samples (sample_id),
201  CONSTRAINT sample_region_fk_region FOREIGN KEY (region_id)
202    REFERENCES regions (region_id)
203) WITHOUT OIDS;
204
205CREATE TABLE sample_metamorphic_grades
206(
207  sample_id INT8 NOT NULL,
208  metamorphic_grade_id INT2 NOT NULL,
209  CONSTRAINT samples_metgrade_pk PRIMARY KEY (sample_id, metamorphic_grade_id),
210  CONSTRAINT samples_metgrade_fk_samples FOREIGN KEY (sample_id)
211      REFERENCES samples (sample_id),
212CONSTRAINT samples_metgrade_fk_metgrade FOREIGN KEY (metamorphic_grade_id)
213    REFERENCES metamorphic_grades (metamorphic_grade_id)
214) WITHOUT OIDS;
215
216CREATE TABLE sample_metamorphic_regions
217(
218  sample_id INT8 NOT NULL,
219  metamorphic_region_id INT2 NOT NULL,
220  CONSTRAINT samples_metregion_pk PRIMARY KEY (sample_id, metamorphic_region_id),
221  CONSTRAINT samples_metregion_fk_samples FOREIGN KEY (sample_id)
222     REFERENCES samples (sample_id),
223CONSTRAINT samples_metgrade_fk_metgrade FOREIGN KEY (metamorphic_region_id)
224    REFERENCES metamorphic_regions (metamorphic_region_id)
225) WITHOUT OIDS;
226
227CREATE TABLE sample_reference
228(
229  sample_id INT8 NOT NULL,
230  reference_id INT8 NOT NULL,
231  CONSTRAINT sample_reference_pk PRIMARY KEY (sample_id, reference_id),
232  CONSTRAINT sample_reference_fk_reference FOREIGN KEY (reference_id)
233      REFERENCES reference (reference_id) MATCH SIMPLE
234      ON UPDATE NO ACTION ON DELETE NO ACTION,
235  CONSTRAINT sample_reference_fk_sample FOREIGN KEY (sample_id)
236      REFERENCES samples (sample_id) MATCH SIMPLE
237      ON UPDATE NO ACTION ON DELETE NO ACTION
238) WITHOUT OIDS;
239
240CREATE TABLE georeference
241(
242  georef_id INT8 NOT NULL,
243  title TEXT NOT NULL,
244  first_author TEXT NOT NULL,
245  second_authors TEXT,
246  journal_name TEXT NOT NULL,
247  full_text TEXT NOT NULL,
248  reference_number TEXT,
249  CONSTRAINT georeference_sk PRIMARY KEY (georef_id)
250) WITHOUT OIDS;
251
252CREATE TABLE sample_georeferences
253(
254  sample_id INT8 NOT NULL,
255  georef_id INT8 NOT NULL,
256  CONSTRAINT sample_georeferences_pk PRIMARY KEY (sample_id, georef_id),
257  CONSTRAINT sample_georeferences_fk_georeferenc FOREIGN KEY (georef_id)
258      REFERENCES georeference (georef_id) MATCH SIMPLE
259      ON UPDATE NO ACTION ON DELETE NO ACTION,
260  CONSTRAINT sample_georeferences_fk_sample FOREIGN KEY (sample_id)
261      REFERENCES samples (sample_id) MATCH SIMPLE
262      ON UPDATE NO ACTION ON DELETE NO ACTION
263) WITHOUT OIDS;
264
265CREATE TABLE elements
266(
267   element_id INT2 NOT NULL,
268   name       VARCHAR(100) NOT NULL,
269   alternate_name VARCHAR(100),
270   symbol     VARCHAR(4)  NOT NULL,
271   atomic_number INT4 NOT NULL,
272   weight        FLOAT4,
273   CONSTRAINT elements_sk PRIMARY KEY (element_id),
274   CONSTRAINT elements_nk1 UNIQUE (name),
275   CONSTRAINT elements_nk2 UNIQUE (symbol)
276) WITHOUT OIDS;
277
278CREATE TABLE uploaded_files
279(
280   uploaded_file_id INT8 NOT NULL,
281   hash      CHAR(50) NOT NULL,
282   filename  VARCHAR(255) NOT NULL,
283   time      TIMESTAMP NOT NULL,
284   user_id   INT4,
285   CONSTRAINT uploaded_files_pk PRIMARY KEY (uploaded_file_id),
286   CONSTRAINT uploaded_files_fk_user FOREIGN KEY(user_id)
287      REFERENCES users (user_id)
288) WITHOUT OIDS;
289
290CREATE SEQUENCE georeference_seq;
291CREATE SEQUENCE invite_seq;
292CREATE SEQUENCE project_seq;
293CREATE SEQUENCE region_seq;
294CREATE SEQUENCE rock_type_seq;
295CREATE SEQUENCE sample_seq;
296CREATE SEQUENCE subsample_seq;
297CREATE SEQUENCE metamorphic_grade_seq;
298CREATE SEQUENCE reference_seq;
299CREATE SEQUENCE uploaded_files_seq;
300CREATE SEQUENCE sample_comments_seq;
301CREATE SEQUENCE subsample_type_seq;
302CREATE SEQUENCE sample_aliases_seq;
303CREATE SEQUENCE metamorphic_regions_seq;
304CREATE SEQUENCE sample_metamorphic_regions_seq;
Note: See TracBrowser for help on using the browser.