wiki:DatabaseCreation

Креирање на База на Податоци

Структура на Базата

Базата се состои од 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.