Wpis z mikrobloga

Mireczki z #bazydanych może #informatyka mam takie jedno drobne pytanie.
Mam przeprowadzić normalizację bazy danych do 3 PN . I tu jest taka zagwozdka moja:
Jest tablica o nazwie ' pizza ', w której do ID pizzy przypisana jest jakaś tam picka. Z tym, że w tej tabeli są od razu wyróżnione rozmiary. Wygląda to tak jak na załączniku.
Zamówienie definiuje numer klienta , numer pizzy.
Czy w przypadku normalizacji muszę teraz zrobić kolejną tabelę ' rozmiar ', a potem połączyć relacją z zamówieniem?

EDIT: No i oczywiście w-----ć rozmiar z tabeli ' pizza ' ?
c.....r - Mireczki z #bazydanych może #informatyka mam takie jedno drobne pytanie.
M...

źródło: comment_1t2ptqnClRVu4wpuyttixcGnuVecOjqf.jpg

Pobierz
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@cl_master: Ja bym zrobił dwie tabele: 1) pizza (id składniki nazwa) i 2) tabela (id idpizza rozmiar cena)

edit: albo jeszcze inaczej rozmiary się powtarzają i ceny pewnie też: Można do tabeli 1) dodać kolumnę: "grupa cenowa (np: 1, 2, 3 itd)" i powiązać wpisem "id
grupa" z id z nowej tabeli "grupa_cenowa", ustalić w niej różne wiersze np: "rozmiar -> 27 cm" "cena -> 22 zł"
  • Odpowiedz
@grzylen: Mój ziomek jeszcze sie lekko mówiąc p-------ł do składników. Sugeruje, żeby zrobić tabele (id pizza, skladnik 1,skladnik 2,3,4,5 itp) i wstawiac odpowiednio nulle i nazwy skladnikow. W ramach 1PN . Ma racje?
  • Odpowiedz
@cl_master: jak dla mnie, potrzeba takich tabel: 1. na pizze, gdzie jest ID i nazwa, 2. na rozmiary, 3. na składniki (jeden wpis na składnik), 4. pizza <-> składniki, czyli tabela trzymająca info jaka pizza ma jakie składniki, 5. pizza <-> rozmiar, czyli tabelka trzymająca id pizzy, id rozmiaru, i cenę danej pizzy w tym rozmiarze.
  • Odpowiedz
nie ma sensu na poziomie struktury bazy ograniczać


@kao3991: ale nie musisz tego ograniczać. kiedyś spotkałem ciekawy sposób - ustalasz np 20 rodzajów składników i ich zastosowanie (lub nie) w danej pizzy odczytujesz z jednej liczby binarnej (wewnątrz jednej kolumny).

0-nie ma składnika 1-
  • Odpowiedz
@grzylen: spoko opcja, ale to nie jest postać normalna bazy - postać normalna zakłada że każde pole jest niepodzielną wartością. Poza tym takie hacki nie są dla bazy za dobre, bo choćby indeksy pozakładane na tak stworzone pole są bezużyteczne.
  • Odpowiedz
to nie jest postać normalna bazy


@kao3991: to fakt i dlatego dopisałem że to zbytnie gmatwanie. ale z drugiej strony robić tyle kolumn ile składników?! i jeszcze korelować to z drugą tabelą ze składnikami! Przewymiarowane. ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@cl_master: ja to podtrzymuję co powiedziałem tu https://www.wykop.pl/wpis/32120265/#comment-113814925 - jest to zgodne z postaciami normalnymi i wg mojej wiedzy zgodne ze sztuką. Fakt że może się wydawać przekombinowane na początku, ale ogarniasz sobie to w kodzie raz i masz, a nie przez cały żywot aplikacji kopiesz się z architekturą bo przybył składnik co ma spację w nazwie i sprawa się rypła, bo spacji używalo się jako separatora składników. Albo bo
  • Odpowiedz