Kodulehed
[387] - Andmebaasid II (ITI0207) (sügis 2024)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Üldist
Materjalid
LisainfoMaterjalide kataloogid.
Värvilised mummud tähistavad hinnangulist kataloogide lugemise vajadust. Roheline - suurim, kollane - keskmine, punane või mummuta - väikseim
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Abi / Kasutajatugi / Iseseisva töö projekt

Avalikud küsimused ja vastused:

Küsimuste teemade nimekiri

Anonüümne (27.11.2022 14:11):
Kuidas realiseerida see, et põhiobjekti X (nt Auto või Kaup) eksemplari andmete muutmine on võimalik vaid siis, kus see eksemplar on mingis kindlas seisundis?
Vastus (27.11.2022 14:25): Kui loote rutiini X andmete muutmiseks, siis kirjutage see kontroll sisse rutiinis sisalduvatesse lausetesse. Näiteks oletame, et kauba andmeid saab muuta (v.a. seisundi muutmine) vaid siis, kui muudetav kaup on seisundis ootel või mitteaktiivne. Oletame, et ootel seisund on koodiga 1 ja mitteaktiivne seisund on koodiga 3.

Rutiinis olevas UPDATE lauses oleks tingimused

UPDATE Kaup
SET ...
WHERE kauba_kood=<etteantud kauba_kood>
AND kauba_seisundi_liik_kood IN (1, 3)
RETURNING kauba_kood;


Kui näiteks kauba kategooria omamisi saaks kustutada vaid siis, kui kaup on kas seisundis ootel või mitteaktiivne, siis oleks kategooria omamise kustutamise rutiinis lause

DELETE FROM Kauba_kategooria_omamine
WHERE kauba_kood=<etteantud kauba_kood>
AND kauba_kategooria_kood=<etteantud kauba_kategooria_kood>
AND EXISTS (SELECT * FROM Kaup
WHERE Kaup.kauba_kood=Kauba_kategooria_omamine.kauba_kood
AND Kaup.kauba_seisundi_liik_kood IN (1, 3))
RETURNING kauba_kood;

Kui loote hiljem nende tingimuste kontrollimiseks trigerid, siis eemaldage need tingimused rutiinidest, et see kontrolli loogika poleks samas tarkvara kihis (andmebaas) dubleeritud.

Hinda vastust:

Keskmine hinne : Pole veel hinnanguid!