Skip to content

DB Scheme

Arthur Borikun edited this page Jan 19, 2018 · 7 revisions

Users

This table stores all data related to users. It contains:

  • id – unique key;
  • name – first and last user's name;
  • login – user's login(nickname);
  • bio – a brief description about user;
  • email – user's email;
  • password – hashed user's password;
  • country – user's country;
  • city – user's city;
  • phone – user's phone number;
  • role – user's role in the platform.

Followers

Since users can subscribe to each other it is logical to keep the user's followers in this table. Table Followers consist of:

  • id – unique key;
  • user_id – unique key for table Users, needed to bind tables;
  • follower_id – unique key for user(follower), needed to bind tables.

Notification

Users can receive notifications about different events. All of these notifications saved in table Notification. This table contains:

  • id – unique key;
  • user_id – unique key for table Users, needed to bind tables;
  • type – type of notifications(can be followed, updated etc.);
  • message – message which informs user what happend.

Skills

Skill is the main entity on the platform. All information about skills stored in table Skills. This table consist of:

  • id – unique key;
  • title – skill's name;
  • image – link to image which related with skill;
  • description – a brief description of the skill(technology).

Users_Skills

This is intermediate table which bind tables Users and Skills. Table consist of:

  • id – unique key;
  • user_id – unique key for table Users, needed to bind tables;
  • skill_id – unique key for table Skills, needed to bind tables.

Graph_Skill

The table contains the data needed to create graph of dependent skills. This table has next fields:

  • id – unique key;
  • parent_skill – unique key for parent skill, needed to bind tables;
  • related_skill – unique key for realted skill, needed to bind tables;
  • weight – count of vacancies for skill.
  • last_date – count of connections for skills.

Graph_Skill_Vacancies

The table contains the data needed to bind graph of skills with vacancy links. This table has next fields:

  • id – unique key;
  • graph_skill_id – unique key for graph skill, needed to bind tables;
  • vacancy_id – unique key for vacancy, needed to bind tables;

Vacancies

The table needed to store data about vacancies. This table has next fields:

  • id – unique key;
  • link – url link for vacancy;

Confirms

This table used for confirming email and for forgot password action. Table consist of:

  • id - unique key;
  • user_id - for binding to user in Users table;
  • token - it's unique key for security;
  • type - type of action (confirming email and forgot password);

Progress

Table for tracking user's progress. It has next fields:

  • id - unique key;
  • user_id - for linking to user in Users table;
  • material_id - for binding to material in Materials table;
  • status - check status of user activity.

Materials

Table contains educational material for each skill. Table consist of:

  • id - unique key;
  • skill_id - for binding to skill in Skills table;
  • text - material;
  • title - title of material.

Directions

Table used like a folder for one direction skills. This table have next fields:

  • id - unique key;
  • title - direction's title;
  • image - direction's icon;
  • parent_direction - id parent direction;

Directions_Skills

This is intermediate table which bind tables Directions and Skills. Table consist of:

  • id - unique key;
  • group_id - for binding to direction or sub direction in Groups table;
  • skill_id - for binding to skill in Skills table;

Clone this wiki locally