feat: add support for alternative ingredients; implement JSON storage and parsing logic
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
This commit is contained in:
@@ -36,6 +36,26 @@ All detaljhistorik och djup teknisk bakgrund finns i respektive tekniska dokumen
|
||||
- Backend-kontrakt ar sanningskalla; klienter foljer kontrakten.
|
||||
- Importfunktionalitet ar delegerad till microservice-importer dar det ar beslutat.
|
||||
|
||||
## Framtida förbättringsområden
|
||||
|
||||
### Alternativa ingredienser — migrering till relationsmodell (Option B)
|
||||
|
||||
Nuläge: `RecipeIngredient.alternativeProductIds` lagras som JSON-kolumn (Option A).
|
||||
Detta fungerar men saknar referensintegritet — om en alternativ produkt tas bort uppdateras inte kolumnen automatiskt.
|
||||
|
||||
Framtida lösning: Ersätt JSON-kolumnen med en separat tabell:
|
||||
```prisma
|
||||
model RecipeIngredientAlternative {
|
||||
id Int @id @default(autoincrement())
|
||||
recipeIngredientId Int
|
||||
recipeIngredient RecipeIngredient @relation(fields: [recipeIngredientId], references: [id], onDelete: Cascade)
|
||||
productId Int
|
||||
product Product @relation(fields: [productId], references: [id], onDelete: Cascade)
|
||||
}
|
||||
```
|
||||
Fördelar: FK-integritet, möjlig sortering/prioritering av alternativ, lättare att querrya.
|
||||
Förutsättning: migration som konverterar befintlig JSON-data till rader i tabellen.
|
||||
|
||||
## Relaterade dokument
|
||||
|
||||
- `README.md` - anvandarperspektiv.
|
||||
|
||||
Reference in New Issue
Block a user