Opas: terminologia korjattu — relaatio on taulu, relationship on yhteys

This commit is contained in:
Jaakko Vanhala
2026-04-12 20:32:52 +03:00
parent ffe9bd6902
commit 5b20ebe800

View File

@@ -321,7 +321,7 @@ Malli tuottaa JSON-rakenteen kuten:
Tämä on yksinkertainen tehtävä jossa pienikin malli onnistuu luotettavasti: Tämä on yksinkertainen tehtävä jossa pienikin malli onnistuu luotettavasti:
entiteettien tunnistus projektin kuvauksesta ja kenttätyyppien valinta. entiteettien tunnistus projektin kuvauksesta ja kenttätyyppien valinta.
Speksi sisältää myös **relaatiot** entiteettien välillä: Speksi sisältää myös **taulujen väliset yhteydet** (relationships):
```json ```json
{ {
@@ -338,7 +338,7 @@ Speksi sisältää myös **relaatiot** entiteettien välillä:
} }
``` ```
Templateit generoivat relaatioista automaattisesti: Templateit generoivat yhteyksistä automaattisesti:
- `ForeignKey('authors.id')` models.py:hin - `ForeignKey('authors.id')` models.py:hin
- `relationship("Book", back_populates="author")` molempiin suuntiin - `relationship("Book", back_populates="author")` molempiin suuntiin
- `BookDetail`-schema jossa author-data mukana - `BookDetail`-schema jossa author-data mukana
@@ -348,14 +348,14 @@ Templateit generoivat relaatioista automaattisesti:
### Architect-agentti: speksin laatu ratkaisee ### Architect-agentti: speksin laatu ratkaisee
Arkkitehti on **kriittisin agentti** koko pipelinessa. Jos speksi on hyvä Arkkitehti on **kriittisin agentti** koko pipelinessa. Jos speksi on hyvä
(oikeat entiteetit, kentät, relaatiot), kaikki muu seuraa automaattisesti. (oikeat taulut, kentät, yhteydet), kaikki muu seuraa automaattisesti.
Jos speksi on huono, templateitkaan eivät pelasta. Jos speksi on huono, templateitkaan eivät pelasta.
Arkkitehtia ohjataan: Arkkitehtia ohjataan:
1. **Chain-of-thought**: "Mieti ensin entiteetit, sitten kentät, sitten relaatiot" 1. **Chain-of-thought**: "Mieti ensin taulut, sitten kentät, sitten yhteydet"
2. **Domain-esimerkit**: Todo, verkkokauppa, blogi — malli näkee miltä hyvä speksi näyttää 2. **Domain-esimerkit**: Todo, verkkokauppa, blogi — malli näkee miltä hyvä speksi näyttää
3. **Anti-patternit**: "Ei turhia ID-kenttiä, ei Enumeita, ei suomenkielisiä nimiä koodissa" 3. **Anti-patternit**: "Ei turhia ID-kenttiä, ei Enumeita, ei suomenkielisiä nimiä koodissa"
4. **Relaatiosäännöt**: "Jokainen `_id`-kenttä tarvitsee vastaavan relationship-merkinnän" 4. **Yhteyssäännöt**: "Jokainen `_id`-kenttä tarvitsee vastaavan relationship-merkinnän"
Isompi malli (tai API) tässä yhdessä kohdassa parantaa kaikkien projektien laatua Isompi malli (tai API) tässä yhdessä kohdassa parantaa kaikkien projektien laatua
koska speksi on ainoa paikka jossa LLM:n ymmärrys vaikuttaa. koska speksi on ainoa paikka jossa LLM:n ymmärrys vaikuttaa.
@@ -380,7 +380,7 @@ class {entity.name}(Base):
``` ```
Tulos: importit ovat aina oikein, `connect_args` on aina mukana, Tulos: importit ovat aina oikein, `connect_args` on aina mukana,
relaatiot generoituvat oikein, testit importoivat `main.py`:stä eivätkä kopioi sitä. taulujen yhteydet generoituvat oikein, testit importoivat `main.py`:stä eivätkä kopioi sitä.
### Vertailu: mittaustulokset ### Vertailu: mittaustulokset
@@ -392,7 +392,7 @@ relaatiot generoituvat oikein, testit importoivat `main.py`:stä eivätkä kopio
| Docker build | vaihteleva | **100%** | | Docker build | vaihteleva | **100%** |
| Pytest läpi | 0% | **100%** | | Pytest läpi | 0% | **100%** |
| API toimii | ~30% | **100%** | | API toimii | ~30% | **100%** |
| Relaatiot (FK) | ei koskaan | **100%** | | Taulujen yhteydet (FK) | ei koskaan | **100%** |
| Nested endpointit | ei koskaan | **automaattisesti** | | Nested endpointit | ei koskaan | **automaattisesti** |
### Milloin kumpikin toimii ### Milloin kumpikin toimii