Citat:
Ursprungligen postat av
Pickels67
Hej!
Skulle vilja ha lite tips på hur en databas för recept skulle se ut.
Jag har idag en tabell med ingredienser
Kod:
id | Livsmedel
1 | Mjölk
2 | Grädde
o.s.v.
Sen hade jag tänkt mig en tabell med själva receptet
Kod:
id | receptID | receptNamn | ingrediens 1 | ingrediens 2 | ingrediens 3 | och ett antal kolumner
eventuellt
Kod:
id | receptID | receptNamn | ingrediens 1 | mängdIngrediens1 | ingrediens 2 | mängdIngrediens2 | och ett antal kolumner
Om jag skulle göra så så känns det som om jag begränsar mig till ett visst antal ingredienser.
En tabell för varje recept är väl inte riktigt optimalt?
Tar gärna emot tips
Mvh
Nackdelen med din design är att den kanske fungerar för enkel svensk husmanskost, men om man introducerar ett recept med många ingredienser kanske dina kolumner inte räcker till.
Är det nödvändigt att kunna filtrera / söka recept baserat på ingredieninnehåll? Om
inte klarar du dig kanske bra med ingredienserna som ett textfält precis som tillagningsmetoden.
Smidigast känns väl att ha huvudsakligen tre tabeller, en för receptinformation (titel, skapare, tillagningssätt osv), en för ingredienser (Mjölk, nötfärs...), en för receptets tillhörande ingredienser.
Recepttabellen innehåller något i stil med
recept_id, recept_namn, recept_skapare, recept_tillagningstid, recept_anvisningar, recept_antal_portioner osv...
Ingredienstabellen innehåller
ingrediens_id- och
ingrediens_namn-fält. Eventuellt något typ- och viktmåttsbestämningsfält (
ingrediens_is_vegan,
ingrediens_weight_type osv) också.
Tabellen för receptets tillhörande ingredienser består slutligen av något liknande
parent_recept_id, ingrediens_id, ingrediens_kvantitet
På så sätt kan du hämta ut information om receptet från din recept-tabell, sedan hämtar du ingredienslistan från receptingredienstabellen där parent_recept_id motsvarar recept_id i recept-tabellen och ingrediens_id motsvarar en ingrediens i ingrediens-tabellen, kvantitet/mängd bestäms av ingrediens_kvantitet och vikt/måttenhet från ingredienstabellen.
Alternativt skippar du den tredje tabellen som håller receptingredienserna helt och hållet och bestämmer att om parent_recept_id är 0/NULL så är det recept-metainformationen, annars är det en ingrediens tillhörande ett recept.