Jag vill koda en receptsamlingssida där nischen ska ligga på sökning av recepten. Man ska tex kunna söka på ingredienser. Om man tex söker på "kyckling" så ska man få alla recept som innehåller kyckling. Om man söker på "kyckling, citron" så ska man få alla recept som innehåller kyckling OCH citron osv. Sen ska man såklart kunna söka på receptens namn och annat relevant.
En annan grej är att jag vill både ha enheter som används i USA och enheter som används i resten av världen (alltså tex både oz och cl)
Men jag kan inte komma på hur jag ska sätta upp databasen för att göra det kodmässigt så enkelt som möjligt att söka recepten genom ingredienserna. Och sen vet jag inte hur jag ska få in enheterna i det hela.
Jag har tänkt att man har en tabell med alla recepten med fullständig information. Alltså namn i en kolumn, ingredienserna i en annan kolumn och så vidare. Men då måste ingredienskolumnen sökas med LIKE (SELECT * FROM tabell WHERE ingredienser LIKE bla && ingredienser LIKE bla2) och det känns inte optimalt.
En lösning är att ha en tabell med recept namn och ett id och en än.än tabell med recept pc ingediens. Och då kanske också ett tredje fält med mängd och ett fjärde med enhet.
Då kan byte du ju räkna ut ny mängd vid enhets
Om du normaliserar så som jag skrev kan du ju om du vill söka med exakta strängar dvs inte med like.
sen kanske man vill söka med någon form av like iallafall då du kanske vill fånga felstavningar.
Dvs en kycklinggryt med kyckling och tomat skriven av Kalle och en köttfärssås aav nisse med köttfärs och lök.
Typ så, Du skulle ju kunna ta det ett steg till med att faktiskt ha en tabell till med ingredienser, och en kopplingstabell mellan ingredienser och recept samt mängden, då normaliserar man ännu bättre och sprar inte samma data flera ggr, Dvs det är ju onödigt och generellt dålig design att spara samma data t.ex. ordet "kyckling" på flera ställen.
(sen kan det finnas fall när man måste göra på andra sätt av olika skäl, kanske främst prestanda, men i ditt fall borde väl prestandan snare påverkas positivt av en bra datamodell)