Kas PostgreSQL andmebaasi tabelile EXCLUDE kitsenduse lisamine võib muuta mõne selle tabeli UNIQUE kitsenduse üleliigseks? Oletame, et PostgreSQL andmebaasis on tabel: Tootaja_projektis_osalemine (tootaja_projektis_id, alg_aeg, lopp_aeg, projekt_id, tootaja_id, roll_kood) Primaarvõti (tootaja_projektis_id) kitsenduspiirangconstraintexclusionduplikaatdubleerimineindeksPostgreSQLkitsendusedEXCLUDEUNIQUEdubleerimineoptimeerimine 01.11.2025 10:19 | Erki Eessaar
Kuidas jõustada PostgreSQLis kitsendus, et kui üks ja sama töötaja omab ühte ja sama rolli mitu korda, siis ei tohi rolli omamise ajaperioodid kattuda? Tuleb luua EXCLUDE kitsendus. EXCLUDE kitsendus on unikaalsuse kitsenduse edasiarendus, mille puhul saab väärtuste unikaalsuse e kordumatuse kontrollimiseks kasutada ka mõnda muud operaatorit kui võrdsuse kontrolli operaator (=), mida kasutab UNIQUE ... PostgreSQLEXCLUDE kitsendusajaperioodidkattuvusandmete terviklikkuskitsendusedajalised andmed 05.06.2022 20:40 | Erki Eessaar
Kuidas jõustada MS Accessis kitsendus, et kui üks ja sama töötaja omab ühte ja sama rolli mitu korda, siis ei tohi rolli omamise ajaperioodid kattuda? Saan jõustada nõrgema kitsenduse, mille kohaselt andmete registreerimise hetke seisuga ei tohi ühel ja samal töötajal olla ühe ja sama rolli kohta rohkem kui üks kehtiv rolli omamine. Kehtiv rolli omamine on selline, mille puhul hetke aeg jääb rolli ... valideerimisreegelcheckvalidation rulePostgreSQLMS Accesskattuvad perioodidajalised andmedalampäring 05.06.2022 20:17 | Erki Eessaar
Kuidas jõustada MS Accessis kitsendus, et mittelõpetatud tubade nimetused peavad olema unikaalsed? Kui andmebaasis defineerida tabelis Tuba unikaalsuse kitsendus UNIQUE (nimetus), siis on nimetus globaalselt unikaalne. Seega, kui tuba on lõpetatud, siis uuesti sama nimetusega tuba registreerida ei saa. Järelikult selline UNIQUE kitsendus ... PostgreSQLMS AccessCHECKalampäringosaline unikaalsusunikaalsus 05.06.2022 12:58 | Erki Eessaar
Kuidas jõustada MS Accessis kitsendus, et meiliaadress on isiku tõstutundetu unikaalne identifikaator? Tõstutundetu unikaalsus tähendab näiteks, et kui süsteemis on registreeritud isiku meiliaadress Mati@mets.ee, siis mõnele teisele isikule meiliaadressi mati@mets.ee registreerida ei saa.Tõstutundetu unikaalsuse jaoks MS Accessis piisab ku... PostgreSQLOracleMS Accesstõstutundetusunikaalsusemailindeks 01.06.2022 00:00 | Erki Eessaar
Mille põhjal otsustada, kas kitsendus tuleks defineerida `DEFERRABLE` omadusega? Miks mitte määrata kõikide kitsenduste puhul `DEFERRABLE INITIALLY DEFERRED`? DEFERRABLE INITIALLY DEFERRED kitsenduse definitsioonis tähendaks seda, et kitsenduse kontroll lükkub transaktsiooni lõppu - transaktsioon võib sisaldada mitut andmemuudatust, transaktsiooni käigus võivad muudatused olla kitsendusega vastuolus, kuid ... DEFERRABLEkitsendusedtransaktsioonidandmete laadiminejõudlusPostgreSQLOracle 01.06.2022 00:00 | Erki Eessaar
Miks peaks tabeliga seotud kitsenduse või indeksi nimi sisaldama tabeli nime? Hea praktika on sellistes nimedes tabeli nime kasutada. Üldine põhimõte on, et tabeli nimi aitab tagada kitsenduse/indeksi nime unikaalsust skeemi piires. Miks on nime unikaalsus skeemi piires vajalik? Miks kasutada indeksi nimes tabeli n... indekskitsendusnimetaminekitsendusedindeksidnimetamisreeglidPostgreSQLOracleunikaalsus 01.06.2022 00:00 | Erki Eessaar
Kas oleks mõistlik hoida andmebaasis asukoha andmeid aadressi ja riigi kombinatsiooni asemel koordinaatidena? Kui jah, siis mis oleks sobivaim andmetüüp selleks(nii Oracles kui Postgresis)? Kõik sõltub sellest, millisel otstarbel on plaanis neid andmeid kasutada. Kui tegemist on taustainfoga, mille alusel ei tehta täpseid otsinguid ja mida võibolla trükitakse kirjadele/arvetele, siis piisab veerust aadress. Tõstaksin... osaline unikaalne indeksexclude kitsenduspoint andmetüüpdecimalnumericarvutatav veergtüübiteisendusasukoha andmedkoordinaadidandmetüübidPostgreSQLOracleGIS 01.06.2022 00:00 | Erki Eessaar
PostgreSQL EXCLUDE kitsendus: millal seda kasutada ning miks ilmub see kõikides näidetes fraasi "EXCLUDE USING gist" kujul? EXCLUDE on PostgreSQLi laiendus - SQL standard seda ette ei näe ja teised andmebaasisüsteemid seda ei paku. Kuid see on väga kasulik laiendus. See on UNIQUE kitsenduse üldistus selles mõttes, et unikaalsuse kontrollimisele saab kasutada väärtuste võr... PostgreSQLEXCLUDE kitsendusUNIQUE kitsendusGIST indeksajalised väärtusedkattuvad perioodidandmete terviklikkus 01.06.2022 00:00 | Erki Eessaar