Skip to content
thisisharrison edited this page Feb 21, 2021 · 14 revisions

Database Schema

User

User -|-< Class saved
User -|-< ClassTime booked

column name data type details
id integer required, primary key
fname string
lname string
email string required
password string required
bio string
city string
affiliate string
isAdmin boolean required
photo string required
saves array ClassSchema
classtimes array ClassTimeSchema
{
    fname: 'Peter',
    lname: 'Griffin',
    email: 'pgriffin@gmail.com',
    password: 'stewie123', (hashed)
    bio: 'Trying to loose weight',
    isAdmin: false,
    photo: 'http://imgurl.com',
    saves: [ObjectId("CCC")],
    classtimes: [ObjectId("CCC)]
}

Class

Class -|-< Tags Class -|-< Languages

column name data type details
id integer required, primary key
name string required
description string required
admin integer UserSchema, indexed, foreign key
tags array Strings
languages array Strings
{
    name: 'Breathing and Meditation',
    description: 'Breathe You Shall',
    admin: 'Yoda',
    tags: [ 'Yoga', 'Meditation' ], 
    languages: [ 'English', 'Spanish' ]
}

ClassTime

User -|-< ClassTime >-|- Class

column name data type details
id integer required, primary key
class integer required, ClassSchema, indexed, foreign key
students array UserSchema, Embedded document
startTime integer unix
endTime integer unix
{
    class: ObjectID("CCC"),
    students: [{
      _id, 
      fname, 
      lname, 
      email, 
      photo
    }], 
    startTime: ..., 
    endTime: ... 
}

Bonus

Review

column name data type details
id integer required, primary key
user integer required, UserSchema, indexed, foreign key
class integer required, ClassSchema, indexed, foreign key
rating integer required
text string required
{
    user: ObjectID("123"),
    class: ObjectID("CCC"),
    rating: 5, 
    text: 'amazing!'
}
Clone this wiki locally