To jest stara wersja strony!
Projekt logiczny [In Progress]
Doprecyzowanie struktury bazy
Słowniki danych
address - tabela przechowująca adresy stałe i korespondencyjne użytkowników
id - id adresu, klucz główny, INTEGER, NOT NULL
street - nazwa ulicy - VARCHAR(64)
house_number - nr domu, VARCHAR(10) NOT NULL
flat_number - nr mieszkania, VARCHAR(10)
town - nazwa miasta, VARCHAR(64) NOT NULL
postal_code - kod pocztowy, VARCHAR(6) NOT NULL
post_office - nazwa poczty, VARCHAR(64), NOT NULL
cars - tabela przechowująca dane o pojazdach szkoleniowych
id - id pojazdu, klucz główny, INTEGER, NOT NULL
registration_number - nr rejestracyjny, VARCHAR(7) NOT NULL,
brand - marka pojazdu, VARCHAR(50) NOT NULL
model - model pojazdu, VARCHAR(50) NOT NULL
colour - kolor pojazdu, VARCHAR(50) NOT NULL
year - rok produkcji, INTEGER, NOT NULL
examination_date - data następnego badania technicznego, DATE
insurance_date - data ważności ubezpieczenia OC, DATE
category - klucz obcy do tabeli CATEGORIES (category_code) kategoria nauki jazdy, dla której pojazd jest przeznaczony, VARCHAR(4)
distance - przebieg, INTEGER
categories - tabela przechowująca kategorie praw jazdy
category_code - klucz główny, kod kategorii prawa jazdy np. B+E, VARCHAR(4), NOT NULL
category_name - nazwa kategorii, VARCHAR(20), NOT NULL
courses - tabela przechowująca informacje o kursach
id - klucz główny, id kursu, INTEGER, NOT NULL
start_date - data rozpoczęcia kursu, DATE, NOT NULL
type - typ kursu (podstawowy - P, dodatkowy - D itp), VARCHAR(3), NOT NULL
practical_training - liczba godzin szkolenia praktycznego, INTEGER, NOT NULL
theoretical_training - liczba godzin szkolenia teoretycznego, INTEGER, NOT NULL
driving_lessons - tabela przechowująca informacje o jazdach kursanta (zajęcia praktyczne)
id - klucz główny, nr zajęcia praktycznego (jazdy), INTEGER, NOT NULL
student_id - nr id studenta, klucz obcy do tabeli STUDENTS (user_id), INTEGER, NOT NULL
instructor_id - nr id instruktora, klucz obcy do tabeli INSTRUCTORS (user_id), INTEGER, NOT NULL
start_time - data i godzina rozpoczęcia, TIMESTAMP
end_time - data i godzina zakończenia, TIMESTAMP
course_id - kurs, którego dotyczą zajęcia, klucz obcy do tabeli COURSES (ID), INTEGER, NOT NULL
status - status zajęć, klucz obcy do tabeli STATUS (ID), INTEGER, NOT NULL
distance - ilość przebytych km, INTEGER
car_id - nr id pojazdu do nauki jazdy, klucz obcy do tabeli CARS (ID), INTEGER, NOT NULL
employees - tabela przechowująca informacje o pracownikach
groups
instructors tabela przechowująca informacje o instruktorach
internal_exams - tabela przechowująca informacje o egzaminach wewnętrznych
id
student_id
course_id
type
result
date
instructor
errors
parameter_groups
parameters
name
desc
type
value
group_id
payments - tabela przechowująca informacje o płatnościach
id
amount
date
student_id
accepted_by
status
due_date
description
payments_status - tabela przechowująca statusy płatności
roles
roles_groups
status - statusy zajęć praktycznych (zarezerwowane, odbyte itp.)
id - nr id statusu, klucz główny, INTEGER, NOT NULL
name - nazwa statusu, VARCHAR(100), NOT NULL
student_categories
student_courses
course_id
student_id
medical_certificate
instructor
certificate_number
end_date
students
theoretical_lessons
id
course_id
instructor_id
subject
date
hours
class
users - tabela przechowująca dane o użytkownikach aplikacji
id - klucz główny, integer, not null
username - nazwa użytkownika, username VARCHAR(32) not null,
pass_sha256 - zaszyfrowane hasło, char(64), not null
pass_salt - sól, char(64), not null
code_sha256 - char(64)
email - adres e-mail użytkownika, varchar(128), not null
phone - nr telefonu, varchar(16)
mobile - nr telefonu komórkowego, varchar(16)
status - status użytkownika, odniesienie do tabeli status (ID), integer not null
first_name - imię, varchar(64)
last_name - nazwisko, varchar(64)
pesel - nr pesel, char(11)
birth_date - data urodzenia, date
nationality - narodowość, varchar(64)
home_address - odniesienie do tabeli adress (pole ID), integer not null
mailing_address - odniesienie do tabeli adress (pole ID), integer
register_date - data rejestracji, timestamp
last_login_date - data ostatniego logowania, timestamp
users_groups
users_roles
Analiza zależności funkcyjnych i normalizacja tabel
Denormalizacja struktury tabel
Projektowanie operacji na danych