====== SQL Algoritmi Kontrolna Lista ====== **Verzija:** 2.1\\ **Opseg:** Stored Procedures, Views, migracije i logika upita preko MS SQL / MySQL / SQLite. ===== MORA ===== * [ ] **Parametrizacija**: nema string konkatenacije za SQL naredbe; striktno tipiziranje * [ ] **Pretpostavke sheme** su dokumentirane (Collation, Case Sensitivity, Null Semantics) * [ ] **Transakcije** su eksplicitne kada je potrebno; Isolation Level je obrazložen * [ ] **Idempotentnost**: migracije i setup skripte mogu sigurno pokrenuti (ili jasno navesti neindempotentnost) * [ ] **Konkurentnost**: ponašanje zaključavanja je razmotreno (Deadlocks, Long Locks, Escalation) * [ ] **Strategija indeksa** je validirana; promjene imaju obrazloženje i bilješke o utjecaju * [ ] **Query Plans** su pregledani za kritične putanje (MS SQL: Actual Plan; MySQL: EXPLAIN; SQLite: Query Plan) * [ ] **Paginacija** koristi deterministički redoslijed (nema "OFFSET bez ORDER BY") * [ ] **Date/Time** semantika je eksplicitna (UTC vs Local; konverzije vremenske zone) * [ ] **Obrada grešaka** mapira DB greške u sigurne aplikacijske greške (nema curenja sheme) ===== TREBALO BI ===== * [ ] Izbjegavati RBAR/Cursore gdje su dostupna set-based rješenja (osim ako obrazloženo) * [ ] Koristiti ograničene skupove rezultata; izbjegavati "SELECT *" u javnim sučeljima * [ ] Pružiti test datasetove i regresijske upite za edge cases ===== POŽELJNO ===== * [ ] Dokumentirati engine-specifične razlike (npr. LIMIT/OFFSET, RETURNING podrška, JSON funkcije) * [ ] Pružiti performanse baseline za tablice velikog volumena ---- //Verzija: 2.1 (Split)//\\ //Autor: Wolfgang van der Stille// Natrag na [[.:start|Stack Kontrolne Liste]] | [[..:start|Kontrolne Liste za Pregled]] ~~DISCUSSION:off~~