Commit 29614d09 authored by M1888's avatar M1888

v2

parent 45464684
......@@ -30,3 +30,20 @@ mysql> INSERT INTO ottelutapahtuma (tyyppi, tapahtuma_id, ottelu_id, aika) VALUE
Takaisin suunnittelupöydän ääreen siis. Seuraava versio oli sellainen, jossa ottelutapahtuma-taulussa on oma erillinen foreign key jokaiselle ottelutapahtumatyypille, ja näistä täytetään rajoitteen avulla vain ja ainoastaan yksi. Taulun pääavain tulee ottelu_id:stä ja tästä yhdestä täytetystä FK:sta.
![](er_v2.png)
Itse kirjoitettu check tätä varten meni näin:
```
CONSTRAINT `CK_tapahtumaid` CHECK (
CASE WHEN aikalisa_id IS NULL THEN 0 ELSE 1 END +
CASE WHEN jaahy_id IS NULL THEN 0 ELSE 1 END +
CASE WHEN rankkari_id IS NULL THEN 0 ELSE 1 END +
CASE WHEN maali_id IS NULL THEN 0 ELSE 1 END = 1)
```
Mutta edelleen törmättiin samankaltaiseen ongelmaan:
```
mysql> INSERT INTO ottelutapahtuma (ottelu_id, jaahy_id, aika) VALUES (1, 1, 3*60+14);
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`M1888`.`ottelutapahtuma`, CONSTRAINT `fk_ottelutapahtuma_aikalisa1` FOREIGN KEY (`aikalisa_id`) REFERENCES `aikalisa` (`aikalisa_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment