Hur gör man en bra receptdatabas med välfungernade sökning ?
Letade efter en liknade sökfunktion som ICA har, där man skriver in ingredienser och får reda vad man kan göra av dom. Letade efter en liknade variant men då med drinkrecept. Fann inget och började klura hur man skulle bygga en sådan.
Databaser som behövs :
ingrediens(i mitt fall, mest prommillehaltiga sådanan) id - ex. 23 namn - ex. "Vodka" beskrivning - ex. "färglös, illasmakande, med stora changser till onykterhet och efterföljande vomering och skammsena minnesluckor"
recept id - ex. 45 namn - ex. snowball beskrivning - ex. "40 cl Voka som toppas av 5 droppar Tippex. Skakas väl innan intagande."
relationer - Talar om vilka ingredienser som finns i recpten id - (oviktigt i detta samanhhang. Eller?) recept_id - 45 ingrediens_id - 23
(för receptet ovan kommer också ingrediensen "Tippex" (ex, id=3) att behövas kopplas till receptet)
Frågan är nu om det går att göra en sökning så som jag vill med hjälp av dessa tabeller.
Sökning 1:
Jag vill söka på alla drinkar som har "Vodka" (id 45) OCH "Tippex" (id 3). Dom får gärna innehålla andra ingredienser också.
Sökning 2:
Jag vill söka på alla drinkar som ENBART innehåller dessa ingredienser, eller i alla fall någon av dom 2. (Dock ska man kanske som max kunna välja 5 ingredienser.)
Tipps om sida som redan innehåller drinkrecept med sådanhär sökfunktion tas emot tacksamt, men problemet ovan vore trevligast att få svar på då det nu gnager i skallen på mig.
select <columns>
from ingredienser i
inner
join relationer r
on r.ingrediens_id = i.id
inner
join recept c
on r.recept_id = c.id
where ( c.namn like '%tippex%'
or c.beskrivning like '%tippex%' )
and ( c.namn like '%vodka%'
or c.beskrivning like '%vodka%' )
2:
select <columns>
from ingrediens i
inner
join relationer r
on r.ingrediens_id = i.id
inner
join recept c
on r.recept_id = c.id
where i.namn like '%tippex%'
or i.namn like '%vodka%'
Eventuellt kan de båda 'c.namn' utelämnas från den första select:en och, nej, du behöver inte ha med 'id' i tabellen relationer.
141 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe