MySQL - Projekt bazy danych

0

Cześć. Programowaniem zajmuję się hobbystycznie od niedawna i nie znam zbyt dobrze baz danych. Mam problem z którym nie wiem jak sobie poradzić. Tworzę bazę do mojej aplikacji i potrzebuję utworzyć tabelę z przepisami. Do danego przepisu chciałbym przypisać identyfikatory z tabeli produkty i ilości tego produktu potrzebne do tego przepisu. I w tym momencie nie mam już zielonego pojęcia w jaki sposób mógłbym taką bazę zaprojektować. Chciałbym żeby później w aplikacji była możliwość wyszukania przepisów z danego składnika. Tabela z produktami będzie wyglądać mniej więcej tak:

----------------------------------- Produkty ----------------------------------
| id | nazwa | kalorie | tłuszcz | węglowodany | białko | błonnik |

Mógłby mi ktoś doradzić w jaki sposób mógłbym przepisać wiele produktów do jednego przepisu tak żebym mógł później te dane również wyświetlić w sekcji ze składnikami w opisie? Dziękuję za wszelkie rady i uwagi odnośnie projektu bazy - bardzo możliwe, że myślę w zły sposób i pewnych rzeczy nie widzę, dlatego będę wdzięczny za konstruktywną krytykę i pomoc. Pozdrawiam wszystkich i życzę dużo zdrowia :)

1

Produkt - produkt może być użyty w wielu przepisach
Przepis - przepis może wymagać użycia wielu produktów

Czyli masz związek wiele do wielu. W praktyce wprowadza się dodatkową relację, która pozwala łączyć produkty z przepisami. W takim podejściu masz 3 relacje (tabele):

  • Produkt (id_produktu)
  • Przepis (id_przepisu)
  • Wymagany_Produkt (id_produktu, id_przepisu, ilość) (możesz nazwać sobie to jakoś inaczej/lepiej/sensowniej, przykład: Produkt_Przepis)

W tej dodakowej tabelce utrzymujesz wpisy łączące konkretny przepis z konkretnymi produktami.

Dodatkowo przemyślałbym strukturę dla Produktu, bo w jakich jednostkach podajesz te kalori/tłuszcze/węgle? Jeden produkt, to co to jest? Sztuka, kilogram, gram, główka, ząbek, szczypta?
Tłuszcze % czy wagowo? Może jednostek nie potrzebujesz, bo nie będziesz przeliczał ilość kalorii per przepis, tylko chciał pokazać składniki.

0

Dziękuję bardzo! Jeśli chodzi o produkty to wartości odżywcze byłyby podawane w 100 g, czyli np. produkt x zawiera 10 g białka w tabeli co oznacza 10 g w 100 g produktu. Tutaj również nie jestem pewien czy jest to dobre rozwiązanie. Przeliczanie kalorii będzie zrobione w aplikacji na podstawie danych z bazy i planuję zrobić automatyczne wyliczanie kalorii przepisów. Pomysł z 3 tabelą muszę przyznać świetny, nie wpadłbym na to, dziękuję bardzo :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1