-
Notifications
You must be signed in to change notification settings - Fork 0
/
dbdiagram.dbml
76 lines (70 loc) · 1.35 KB
/
dbdiagram.dbml
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Table users{
id INTEGER PK
firstName VARCHAR
lastName VARCHAR
email VARCHAR
username VARCHAR
hashedPassword VARCHAR
createdAt TIMESTAMP
updatedAt TIMESTAMP
}
Table spots{
id INTEGER PK
ownerId INTEGER
address VARCHAR
city VARCHAR
state VARCHAR
country VARCHAR
lat DECIMAL
lng DECIMAL
name VARCHAR
description VARCHAR
price INTEGER
createdAt TIMESTAMP
updatedAt TIMESTAMP
//avgRating DECIMAL//update to aggregate, not a column on the table, fewer routes
//previewImage VARCHAR
}
Ref: users.(id) < spots.(ownerId)
Table spotImages{
id INTEGER PK
spotId INTEGER
url VARCHAR
previewBool BOOLEAN
createdAt TIMESTAMP
updatedAt TIMESTAMP
}
Ref: spots.(id) < spotImages.(spotId)
Table reviews{
id INTEGER PK
userId INTEGER
spotId INTEGER
review VARCHAR
stars DECIMAL
createdAt TIMESTAMP
updatedAt TIMESTAMP
//User [ref: > users]
//Spot
//ReviewImages
}
Ref: users.(id) < reviews.(userId)
Ref: spots.(id) < reviews.(spotId)
Table reviewImages{
id INTEGER PK
reviewId INTEGER
url VARCHAR
createdAt TIMESTAMP
updatedAt TIMESTAMP
}
Ref: reviews.(id) < reviewImages.(reviewId)
Table bookings{
id INTEGER PK
userId INTEGER
spotId INTEGER
startDate DATE
endDate DATE
createdAt TIMESTAMP
updatedAt TIMESTAMP
}
Ref: users.(id) < bookings.(userId)
Ref: spots.(id) < bookings.(spotId)