-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDBSchema.sql
More file actions
28 lines (26 loc) · 861 Bytes
/
DBSchema.sql
File metadata and controls
28 lines (26 loc) · 861 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
CREATE TABLE account (
email VARCHAR(128) PRIMARY KEY,
name VARCHAR(128) NOT NULL,
address VARCHAR(128) NOT NULL,
password VARCHAR(32) NOT NULL,
admin BOOLEAN DEFAULT FALSE
);
CREATE TABLE item (
id SERIAL PRIMARY KEY,
name VARCHAR(256) NOT NULL,
hidden BOOLEAN DEFAULT FALSE,
location VARCHAR(512) NOT NULL,
description VARCHAR(1024) DEFAULT NULL,
condition VARCHAR(32) DEFAULT 'Good' CHECK(condition = 'Excellent' OR condition= 'Good' OR condition='Poor' ),
owner VARCHAR(128) REFERENCES account(email)
);
CREATE TABLE bid (
id SERIAL PRIMARY KEY,
status VARCHAR(8) DEFAULT 'Pending' CHECK (status = 'Accepted' OR status = 'Pending' OR status = 'Declined'),
fee NUMERIC CHECK (fee >= 0),
startDate DATE NOT NULL,
endDate DATE NOT NULL,
item_id SERIAL REFERENCES item(id),
bidder_email VARCHAR(128) REFERENCES account(email),
CHECK (endDate > startDate)
);