wiki:DatabaseCreation

Version 1 (modified by 231108, 8 days ago) ( diff )

--

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

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

Базата се состои од 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 [ДОДАДИ БРОЈ]
Studies [ДОДАДИ БРОЈ]
Diploma [ДОДАДИ БРОЈ]
User_Skill [ДОДАДИ БРОЈ]
Employment [ДОДАДИ БРОЈ]
SalaryHistory [ДОДАДИ БРОЈ]
Position [ДОДАДИ БРОЈ]
Promotion [ДОДАДИ БРОЈ]
Internship [ДОДАДИ БРОЈ]
!AdditionalCourse_User [ДОДАДИ БРОЈ]
Startup [ДОДАДИ БРОЈ]
Founder [ДОДАДИ БРОЈ]
Event [ДОДАДИ БРОЈ]
Event_User [ДОДАДИ БРОЈ]
Award [ДОДАДИ БРОЈ]
University [ДОДАДИ БРОЈ]
Faculty [ДОДАДИ БРОЈ]
StudyProgram [ДОДАДИ БРОЈ]
Industry [ДОДАДИ БРОЈ]
Company [ДОДАДИ БРОЈ]
Skill [ДОДАДИ БРОЈ]
AdditionalCourse [ДОДАДИ БРОЈ]
Note: See TracWiki for help on using the wiki.