wiki:Design

Апликативен дизајн - Случаи на употреба и Сценарија за пристап до базата - SQL Погледи

Актери

  • Ненајавен корисник: Корисник кој што сѐ уште не е најавен во системот. Може да пристапи само до јавни информации (основни информации за компании и услуги).
  • Најавен корисник: Вработен кој се има најавено во системот, но има ограничени привилегии.
  • Администратор: Корисник со највисоки привилегии. Може да регистрира нови корисници, додава или модифицира компании, клиенти, или фактури.

Случаи на употреба

  1. Најава на корисник: Корисникот внесува корисничко име и лозинка за пристап до системот.
  2. Регистрација на нов вработен: Администратор регистрира нов вработен и му доделува улога (на пример: HR, финансии, програмер).
  3. Приказ на сите вработени во една компанија: Администратор или HR може да види листа на сите вработени во одредена компанија.
  4. Приказ на сите клиенти: Корисникот може да ги види сите клиенти регистрирани во системот.
  5. Детален приказ на клиент: Приказ на сите информации за одреден клиент (на пример: адреса, контакт лице, фактури).
  6. Креирање и уредување на фактура: Администратор или финансиски менаџер додава нова фактура или модифицира постоечка.
  7. Филтрирање на клиенти по град: Корисникот може да ги филтрира клиентите според локација.
  8. Приказ на сите фактури за одреден клиент: Корисникот ги прегледува сите фактури поврзани со избран клиент.
  9. Приказ на детали за одредена фактура: Детален приказ на содржината на фактурата (линиски ставки, износ, статус).

Најважни случаи на употреба

  1. Регистрација на нов вработен (само Админ)

Чекори:

  1. Администраторот пополнува форма со податоци за нов вработен.
  2. Системот ги запишува податоците во Employee.
INSERT INTO Employee (first_name, last_name, email, status, iban, cv, photo, notes, company_id, created_at, updated_at)
VALUES ('Alice', 'Johnson', 'alice.johnson@agencyos.com', 'Active', 'MK121212121212', '/cvs/alice_johnson.pdf', '/photos/alice.jpg', 'Great with clients', 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
  1. Преглед на сите вработени во компанија

Чекори:

  1. HR или Админ избира компанија.
  2. Системот враќа листа од сите вработени за таа компанија.
SELECT employee_id, first_name, last_name, email, status
FROM Employee
WHERE company_id = 1;
  1. Преглед на сите клиенти
SELECT client_id, name, email, phone, city, country
FROM Client
ORDER BY name;
  1. Преглед на деталите за конкретен клиент
    SELECT cl.*, COUNT(i.invoice_id) AS total_invoices, SUM(li.total) AS total_billed
    FROM Client cl
    LEFT JOIN Invoice i ON i.client_id = cl.client_id
    LEFT JOIN LineItem li ON li.invoice_id = i.invoice_id
    WHERE cl.client_id = 1
    GROUP BY cl.client_id;
    
  1. Креирање на нова фактура
    INSERT INTO Invoice ("from", "to", issue_date, due_date, notes, status, company_id, client_id, created_at, updated_at)
    VALUES ('AgencyOS Inc.', 'Global Enterprises', CURRENT_DATE, CURRENT_DATE + INTERVAL '30 days', 'Project Alpha delivery', 'Pending', 1, 1, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
    
  1. Уредување на постоечка фактура
    UPDATE Invoice
    SET status = 'Paid', updated_at = CURRENT_TIMESTAMP
    WHERE invoice_id = 1;
    
  1. Преглед на фактури за клиент
    SELECT i.invoice_id, i.issue_date, i.due_date, i.status, SUM(li.total) AS total
    FROM Invoice i
    LEFT JOIN LineItem li ON li.invoice_id = i.invoice_id
    WHERE i.client_id = 1
    GROUP BY i.invoice_id;
    
  1. Преглед на детали за фактура
    SELECT i.*, li.description, li.quantity, li.unit_price, li.total
    FROM Invoice i
    JOIN LineItem li ON li.invoice_id = i.invoice_id
    WHERE i.invoice_id = 1;
    
Last modified 5 days ago Last modified on 08/13/25 16:27:49
Note: See TracWiki for help on using the wiki.