Forumet - Databasupplägg

Databasupplägg

185 0 11
Hejsan tjosan!
Jag sitter och pillar lite på mysql. Jag skulle vilja bygga en liten recept-databas där man på något sätt kopplar varje recept till ett antal ingredienser.

Jag vill ha namn, ingredienser, typ, samt länk till receptet.
Jag har inte arbetat mycket med databaser så jag är osäker på hur man bör lägga upp tabellerna.

Jag vill kunna göra en query med ett antal ingredienser och få ut de recept som har dessa kopplade till sig.

Förslag?[blush]
Tjohejsan.

Jag har hjälpt pappa att pilla lite i en mysql databas.
Och rent spontant så undrar jag om det inte skulle fungera att ge ingridienserna en sifferkod? Känns som om det skulle vara enklare att skriva in dom i datorbasen då, nackdelen blir väl att man måste ge ingridienserna siffror. [blush]

Sedan så är det väl bara att ha en spalt åt var och en av sakerna, alltså, en för namnet, en för ingridienserna, en för vilken typ det är och en för länken. [blush]

Vet inte om det går att organisera datorbasen så att den söker i typ rubriker, så om du läger typerna som rubriker så specificerar man sig sedan inom den rubriken. Om du förstår vad jag menar. [blush]

Hoppas jag hjälper. [blush]

Spana också in:

Se till att ditt schema är normaliserat, antingen från början eller genom att du normaliserar det efter hand. Du vill inte ha dubbel lagring av data nånstans, så se till att tänka igenom alla relationer noga först.

En receptdatabas är dock så enkel att det borde räcka med två tabeller:

CREATE TABLE recipes (
name VARCHAR(255),
url VARCHAR(255),
PRIMARY KEY (name)
);

CREATE TABLE recipe_ingredients (
ingredient VARCHAR(64),
recipe_name VARCHAR(255),
FOREIGN KEY (recipe_name) REFERENCES recipes(name) ON DELETE CASCADE
);

Och se för guds skull till att använda en storage engine som har stöd för foreign keys och liknande.

Kolla upp entity-relation-diagram; de brukar hjälpa en del att visualisera hur data ska höra ihop.