| | 1 | == UseCase002 with SQL - Регистрација на студент |
| | 2 | |
| | 3 | === Актери |
| | 4 | * Нерегистриран корисник |
| | 5 | |
| | 6 | === Чекори |
| | 7 | 1. Корисникот ја пополнува формата за регистрација и кликнува „Регистрирај се“ |
| | 8 | 2. Системот проверува дали постои корисник со внесената е-пошта |
| | 9 | 3. Доколку не постои, во една трансакција се креира корисникот и поврзаните податоци |
| | 10 | |
| | 11 | === SQL |
| | 12 | {{{#!sql |
| | 13 | -- 1. Проверка дали корисникот веќе постои |
| | 14 | SELECT COUNT(*) FROM users WHERE email = @email; |
| | 15 | |
| | 16 | -- 2. Креирање на корисник и поврзани записи во трансакција |
| | 17 | BEGIN; |
| | 18 | |
| | 19 | INSERT INTO users (id, name, embg, surname, "index", bday, email, password, role, created_at) |
| | 20 | VALUES (@id, @name, @embg, @surname, @index, @bday, @email, @passwordHash, 'student', now()); |
| | 21 | |
| | 22 | INSERT INTO contact (user_id, city, municipality, address, number, microsoft_email) |
| | 23 | VALUES (@id, @city, @municipality, @address, @number, @microsoftEmail); |
| | 24 | |
| | 25 | INSERT INTO enrollment_info (id, user_id, quota, major_id, enrollment_year) |
| | 26 | VALUES (@enrollmentId, @id, @quota, @majorId, @enrollmentYear); |
| | 27 | |
| | 28 | INSERT INTO high_school (user_id, gpa, type) |
| | 29 | VALUES (@id, @gpa, @hsType); |
| | 30 | |
| | 31 | COMMIT; |
| | 32 | }}} |