• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie bazy danych sklepu spożywczego.

+1 głos
57 wizyt
pytanie zadane 4 maja w SQL, bazy danych przez Arek04 Użytkownik (510 p.)
Tworzę bazę danych sklepu spożywczego, jako projekt do szkoły. Mam nieco obaw, czy aby na pewno wszystko logicznie trzyma się ładu i czy mogę już przepisywać diagram jako kod w SQL. Nie mam też pewności co do relacji pomiędzy tabelami.

Zwłaszcza mam pytanie o możliwość składania zamówienia przez klienta, które obejmowałoby więcej niż tylko jeden produkt. Jak powinienem to zaimplementować na diagramie? Chodzi mi o to, aby potem móc sprawdzać wszystkie dane dokładnie w taki sam sposób jak w przypadku zamówień na pojedyncze produkty (ilość, typ produktu, nazwa, cena itd.). Link do imgura z diagramem: https://imgur.com/waGBDYU

 Z góry dziękuję :)
komentarz 4 maja przez tkz Nałogowiec (38,400 p.)
Schemat jest błędny. Trzymaj się tego, by nazwy tabel były pisane w liczbie pojedynczej. Tabela podrzędna zaczyna się od tabeli nadrzędnej, język polski nie jest najlepszy do tego typu zabiegów, ale tak powinno się pisać. Masz tabele product, i product_type, nie type_product.

Klient może, nawet nie, że może, on musi mieć tylko jedno zamówienie?
To samo tyczy się tabeli zamówienie<=>produkt.
Dlaczego produkt jest opcjonalny w zamówieniu? Albo jest, albo go nie ma. Tyle.

Ogólnie tabel jest za mało. Cena nie ma nic wspólnego z typem produktu. Pensja z pracownikiem również(akurat w tym kontekście, po co to tam trzymać?). Nie traktuj jednej tabeli jako zbiornika na wszystko, co kojarzy Ci się z jej nazwą. Dobrze chociaż, że trzymasz się jednej konwencji ERD.
komentarz 4 maja przez Arek04 Użytkownik (510 p.)
Właśnie zastanawiałem się jak zrobić relacje pomiędzy klientem a zamówieniem w drugą stronę. Mianowicie - teraz zamówienie może mieć tylko jednego klienta, nie więcej, nie mniej. To chyba ma sens. Tylko, że ja również chciałem zrobić tak, że klient może mieć kilka zamówień. Myślałem, że coś jest nie tak, bo to dziwnie wyglądało na diagramie. Tutaj link do poprawionego: https://i.imgur.com/CKkXSQn Czy o to chodzi?

A teraz mimo, że diagram pozwala na kilka produktów w jednym zamówieniu, to jak powinienem to zrealizować? Chodzi mi o to, że nie wiem jak zapisać kilka produktów do jednego zamówienia, skoro w tabeli jest tylko jedna kolumna na produkt.
komentarz 4 maja przez tkz Nałogowiec (38,400 p.)
Dlaczego używasz encji "opcjonalne"? Bo jak dobrze widzę, używasz notacji Martina?

Niech produkt trzyma id zamówienia. Patrząc na to mam takie "och, trochę za dużo, pomieszane to wszystko". Zrobiłbym tak, że mam produktu i wszystko, co podlega pod produkt, zawiera id tego produktu.

W ogóle masz dwie encje klient <=> zamówienie.
komentarz 5 maja przez Arek04 Użytkownik (510 p.)
Tyle udało mi się wymyślić. Wydaje się, że wszystko trzyma się kupy. Link: https://i.imgur.com/2AIubPy

Mam tylko jeszcze pytanie - jak mogłoby to w bazie danych wyglądać, że wyświetla się rekord zamówienia, w którym jest zamówiony więcej niż jeden produkt? Bo nie umiem sobie tego wyobrazić jak wyłuskiwać wszystkie dane na temat każdego z tych produktów w jednym zamówieniu.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 1,054 wizyt
pytanie zadane 21 października 2019 w SQL, bazy danych przez Kamilu01 Nowicjusz (120 p.)
+1 głos
3 odpowiedzi 182 wizyt
pytanie zadane 5 lipca 2020 w HTML i CSS przez Paweł Sypek Początkujący (440 p.)
0 głosów
1 odpowiedź 1,346 wizyt
pytanie zadane 28 kwietnia 2017 w SQL, bazy danych przez Caesar Początkujący (320 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

84,130 zapytań

132,899 odpowiedzi

293,918 komentarzy

55,554 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...