Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Postavljanje indeksa i/ili triggera - potreban savet!

[es] :: MySQL :: Postavljanje indeksa i/ili triggera - potreban savet!

[ Pregleda: 2384 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mika
NBG-ML

Član broj: 55
Poruke: 640
*.adsl-2.sezampro.yu.



+1 Profil

icon Postavljanje indeksa i/ili triggera - potreban savet!14.09.2007. u 10:04 - pre 202 meseci
Pozdrav svima,

Imam jedan problemčić koji bih hteo da podelim sa vama. Najpre, da predstavim test tabelu:

Code:

tblOffers:
---------

+------------------------------+----------------+ ...
| idOffer(int) | idClient(int) | isLocked(bool) |
+------------------------------+----------------+ ...
|            1 |             1 |              0 |
|            2 |             1 |              1 |
|            3 |             2 |              0 |
|            4 |             2 |              1 |
|            5 |             2 |              1 |
|            6 |             2 |              1 |
.              .               .                .
.              .               .                .
.              .               .                .


Dakle, bitne kolone u tabeli su prikazane, ostatak je nebitan.

Tabela prikazuje ponude koje su poslate klijentima; idOffer je primarni ključ, idClient je strani ključ, isLocked pokazuje da li je ponuda "zaključana" ili ne. Dakle, veza tabele "tblClients" prema tabeli "tblOffers je "jedan-prema-više".

Business logika je sledeća: svaki klijent može da ima neograničeno mnogo ponuda, ali samo jednu otključanu. Dakle, može biti samo jedna otključana, aktivna ponuda po klijentu.

Zanima me sledeće:: kako postaviti pravilo u tabeli Offers (da li koristiti indekse ili trigere ili "ON INSERT" pravilo) tako da se ovakva business logika omogući? Dakle, kada bih sad u gornju, prikazanu tabelu hteo da ubacim slog sa vrednostima (7,2,0), da mi sistem onemogući da ubacim takav slog, jer već postoji jedan takav slog po klijentu. Kako najefikasnije ovo rešiti?

Moja ideja je bila da ubacim neki trigger koji bi pre INSERT-a proveravao da li je gornja business logika zadovoljena (tj. da li korisnik pokušava da ubaci "nezaključani" slog u tabelu, a već postoji nezaključani slog za tog klijenta) i u tom slučaju da se sistem "pobuni". Nisam koristio do sada triggere pa bi mi u tom smislu svaka smernica bila značajna. Ako neko ima mišljenje da se to reši na drugi način, neka napiše.

Pozdrav, unapred hvala!
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

[es] :: MySQL :: Postavljanje indeksa i/ili triggera - potreban savet!

[ Pregleda: 2384 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.