-
Notifications
You must be signed in to change notification settings - Fork 2
DB Scheme
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.
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.
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.
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).
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.
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.
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;
The table needed to store data about vacancies. This table has next fields:
- id – unique key;
- link – url link for vacancy;
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);
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.
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.
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;
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;
