Креирање на База на Податоци
Структура на Базата
Базата се состои од 22 табели организирани во следните групи:
Образование
- University - Складира информации за универзитети (име, адреса, веб страна, контакт)
- Faculty - Факултети кои припаѓаат на универзитети
- StudyProgram - Студиски програми понудени од факултети (bachelor, master, phd)
- Studies - Следи кои корисници се запишани на кои студиски програми
- Diploma - Записи за дипломирање на завршени студии
Корисници
- User - Главна табела за корисници со лични информации (име, датум на раѓање, просек, контакт)
- Skill - Достапни вештини со типови (технички, меки, јазици, итн.)
- User_Skill - Врска many-to-many помеѓу корисници и вештини
Вработување
- Industry - Категории на индустрии
- Company - Компании со број на вработени и индустрија
- Employment - Записи за вработување кои ги поврзуваат корисниците со компании
- Position - Работни позиции за време на вработувањето
- Promotion - Записи за унапредување со стари/нови нивоа
- SalaryHistory - Промени на плата со текот на времето
Останати Активности
- Internship - Записи за пракси кои ги поврзуваат корисниците со компании
- AdditionalCourse - Курсеви за професионален развој
- AdditionalCourse_User - Записи за завршени курсеви по корисник
- Startup - Стартап компании
- Founder - Ги поврзува корисниците со стартапите кои ги основале
- Event - Професионални настани организирани од компании
- Event_User - Записи за присуство на настани
- Award - Награди добиени од корисници
Ограничувања
Структурата ги наметнува следните правила за интегритет на податоците:
- Валидација на формат на е-пошта преку regex на табелите University, Faculty и User
- Валидација на формат на телефон (6-15 цифри, опционален + префикс)
- Валидација на формат на веб страна (мора да започнува со http:// или https://)
- Просек опсег 5-10
- Тип на диплома ограничен на: bachelor, master, phd
- Тип на вработување ограничен на: full-time, part-time, contract, internship
- Ограничувања за статус на студии/вработување
- Валидација на опсег на датуми (end_date >= start_date)
- Каскадни ажурирања и ограничени бришења на foreign keys
Генерирање на Податоци
Податоците беа генерирани со комбинација на:
- CSV датотеки - 14 CSV датотеки кои содржат референтни податоци (имиња, градови, универзитети, факултети, студиски програми, индустрии, компании, вештини, работни позиции, настани, курсеви, стартапи, награди)
- SQL скрипта за генерирање - Големите табели се генерирани со користење на PostgreSQL функцијата
generate_series()со детерминистички формули за да се обезбеди референцијален интегритет
Стратегија на Генерирање
- Референтните податоци (University, Faculty, Industry, Skill, итн.) вметнати од CSV датотеки
- Големите табели (User, Studies, Employment, итн.) генерирани во серии од 500.000 редови за да се избегнат проблеми со истекување на времето
- Користени процедури за сериско вметнување
Број на Редови по Табела
| Табела | Број на Редови |
| User | 10,098,000 |
| Studies | 20,647,814 |
| Diploma | 10,323,907 |
| User_Skill | 21,746,369 |
| Employment | 21,971,721 |
| SalaryHistory | 21,971,721 |
| Position | 3,000,000 |
| Promotion | 7,323,907 |
| Internship | 1,464,782 |
| AdditionalCourse_User | 3,661,954 |
| Startup | 30 |
| Founder | 116,196 |
| Event | 3,000 |
| Event_User | 107,969 |
| Award | 1,009,800 |
| University | 10 |
| Faculty | 15 |
| StudyProgram | 150 |
| Industry | 44 |
| Company | 5,000 |
| Skill | 65 |
| AdditionalCourse | 20 |
Last modified
8 days ago
Last modified on 05/18/26 00:09:38
Note:
See TracWiki
for help on using the wiki.
