Database Schema - ZhiqiLinn/airVnb GitHub Wiki

image

Users

Column Name Data Type Details
id String not null, primary key
username String(30) not null, unique
profilePic String allow null
email String null,unique
hashedPassword String(50) not null
createdAt timeStamp not null
updatedAt timeStamp not null
  • One user can hasMany listings
  • One user can hasMany bookings
  • One user can hasMany reviews

Listings

Column Name Data Type Details
id integer not null, primary key
userId integer not null, unique
name string not null
about text not null
address string not null
city string not null
state string not null
price string  not null
serviceFee string  not null
img1 string not null
img2 string allow null
img3 string allow null
created_at timeStamp not null
updated_at timeStamp not null
  • One listing can only belongsTo one user
  • One listing can hasMany bookings
  • One listing can hasMany reviews

Bookings

Column Name Data Type Details
id integer not null, primary key
userId integer not null, unique
listingId integer not null, unique
checkIn date not null
checkOut date not null
created_at datetime not null
updated_at datetime not null
  • One booking can only belongsTo one user
  • One booking can only belongsTo one listing

Reviews (Bonus)

Column Name Data Type Details
id integer not null, primary key
userId integer not null, unique
listingId integer not null, unique
rating integer not null
content string (1000) not null
created_at datetime not null
updated_at datetime not null
  • One review can only belongsTo one user
  • One review can only belongsTo one listing