| Version 5 (modified by , 9 months ago) ( diff ) |
|---|
Апликативен дизајн - Случаи на употреба и Сценарија за пристап до базата - SQL Погледи
Актери
- Ненајавен корисник: Корисник кој што сѐ уште не е најавен во системот. Може да пристапи само до јавни информации (основни информации за компании и услуги).
- Најавен корисник: Вработен кој се има најавено во системот, но има ограничени привилегии.
- Администратор: Корисник со највисоки привилегии. Може да регистрира нови корисници, додава или модифицира компании, клиенти, или фактури.
Случаи на употреба
- Најава на корисник: Корисникот внесува корисничко име и лозинка за пристап до системот.
- Регистрација на нов вработен: Администратор регистрира нов вработен и му доделува улога (на пример: HR, финансии, програмер).
- Приказ на сите вработени во една компанија: Администратор или HR може да види листа на сите вработени во одредена компанија.
- Приказ на сите клиенти: Корисникот може да ги види сите клиенти регистрирани во системот.
- Детален приказ на клиент: Приказ на сите информации за одреден клиент (на пример: адреса, контакт лице, фактури).
- Креирање и уредување на фактура: Администратор или финансиски менаџер додава нова фактура или модифицира постоечка.
- Филтрирање на клиенти по град: Корисникот може да ги филтрира клиентите според локација.
- Приказ на сите фактури за одреден клиент: Корисникот ги прегледува сите фактури поврзани со избран клиент.
- Приказ на детали за одредена фактура: Детален приказ на содржината на фактурата (линиски ставки, износ, статус).
Најважни случаи на употреба
- Регистрација на нов вработен од страна на администратор
CREATE TABLE Employee (
employee_id BIGSERIAL PRIMARY KEY,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
role VARCHAR(50) CHECK (role IN ('Admin', 'Manager', 'Accountant')) NOT NULL,
date_of_employment DATE NOT NULL DEFAULT CURRENT_DATE
);
- Приказ на сите клиенти и деталите за одреден клиент
All
SELECT
client_id,
name,
contact_person,
email,
phone,
city,
country
FROM
Client
ORDER BY
name;
{{{
Specific Client
{{{
SELECT
cl.*,
COUNT(i.invoice_id) AS total_invoices,
SUM(i.total_amount) AS total_amount_due
FROM
Client cl
LEFT JOIN
Invoice i ON cl.client_id = i.client_id AND i.status = 'Unpaid'
WHERE
cl.client_id = 5 -- Replace 5 with the specific client ID
GROUP BY
cl.client_id;
}}}
3. **Креирање и уредување на фактури**
All
{{{
SELECT
i.invoice_id,
c.name AS client_name,
i.issue_date,
i.due_date,
i.total_amount,
i.status
FROM
Invoice i
JOIN
Client c ON i.client_id = c.client_id
ORDER BY
i.issue_date DESC;
}}}
New Invoice
{{{
INSERT INTO Invoice (client_id, issue_date, due_date, total_amount)
VALUES
(3, CURRENT_DATE, CURRENT_DATE + INTERVAL '30 days', 1250.00);
}}}
UPDATE Invoice
{{{
SET
total_amount = 1350.00,
due_date = '2025-03-01',
status = 'Paid'
WHERE
invoice_id = 2; -- Replace 2 with the actual invoice ID
}}}
}}}
Note:
See TracWiki
for help on using the wiki.
