Przypisanie w bazie danych do klienta produktów i ich ilości na dany dzień oraz porę dnia.

0

Witam, otóż chciałem się zapytać czy orientuje się ktoś jak mogę zrobić takie coś, że mam tabelę "produkt", która zawiera w sobie następujące dane: id, nazwa, cena. I przykładowo jest klient, np. "User1". I chciałbym przechowywać dane co on zamawiał i jakie ilości rano, popołudniu oraz wieczorem (chciałem to rozwiązać w taki sposób, że np. 1 kwietnia 2015 rano, to będzie 20150401r, wieczorem to 20150401w). Tylko, że może być tak, że np. jednego dnia rano zamówi tylko "Produkt1, 10 sztuk", "Produkt2, 5 sztuk", a innego dnia rano "Produkt 1, 10 sztuk", "Produkt 2, 2 sztuki", "Produkt3, 8 sztuk", ..., "Produkt n, n sztuk". Myślałem o zrobieniu tabeli o nazwie "Użytkonik1" (już zrobiłem tak, że tworzy się ona automatycznie podczas rejestracji danego użytkownika) lecz nie wiem co dalej. Ma ktoś może pomysł jak ten problem rozwiązać?

1

Stwórz tabele zamowienia, gdzie bedziesz mial 2 klucze obce id_produkt, id_user, a poza tym data_zamowienia, ilosc, cena (jesli bierzesz pod uwage, że moze byc inna niz detaliczna - jakies znizki, albo cos)

2

przede wszystkim wypadało by posiąść PODSTAWOWĄ wiedzę o problemie, który chce się rozwiązać. <ort>W cale</ort> nie mam tu na myśli przydreptanie na forum i pytanie o podstawy podstaw ale wzięcie do ręki jakiejkolwiek literatury fachowej, chociażby tego. Jak będziesz miał wymienić klocki hamulcowe w aucie to też weźmiesz młotek i będziesz walił nim gdzie popadnie aż koło odleci??

To co zrobiłeś (Myślałem o zrobieniu tabeli o nazwie "Użytkonik1" (już zrobiłem tak, że tworzy się ona automatycznie podczas rejestracji danego użytkownika)) to jest najgorsza możliwość jaką mogłeś wybrać. Jak będziesz miał np. 1000 użytkowników (mała hurtownia spożywcza ma taką ilość) i będziesz chciał zrobić zestawienie co wszyscy kupili w danym dniu to ja będzie zapytanie wyglądało?? Poprawne rozwiązanie to 4 (słownie CZTERY) tabele, bez względu na ilość produktów, userów i zamówień. Produkt, Klient, Zamówienie, Pozycje_zamówienia. Twoim zadaniem jest wymyślić co w tych tabelach powinno być i jak powinny być powiązane.

Co do zapytania o zamówienia w konkretnych porach dnia to jak będziesz miał datę i godzinę zamówienia to sobie to pogrupujesz jak tylko będzie Ci się podobało.

0

Dzięki za pomoc, nie pomyślałem o tym, że mając 1000 użytkowników, to będę miał wtedy 1000 tabel, a np. będę musiał dodać kolejną kolumnę, to będzie wtedy nie za ciekawie :P Więc pomyślałem, że zrobię to tak (każda tabela jak klucz główny będzie miała ID):
Tabela fos_user (gotowiec z FOSUserBundle) - tutaj mam nazwy użytkowników, hasła, maile, role itp.
Product - tabela z nazwą produktu oraz ceną.
Userproduct (muszę pomyśleć nad lepszą nazwą) - klucz obcy id użytkownika, klucz obcy id produktu, ilość, data.

Tylko mam pewien problem, otóż chciałem zrobić takie coś, że są "paczki" do których będzie pojawiał się odnośnik. Mam na myśli coś takiego, że np. w bazie danych już jest ustalone, że PaczkaX posiada ProduktA, ProduktB oraz ProduktC. PaczkaY posiada produktA, produktC, produktE, produktZ itp. I do każdej paczki chciałbym dodać jako varchar linka. I zastanawiałem się jak to zrobić. I wymyśliłem takie coś, że będą dwie tabele:
Paczki - jako klucz główny to jak wszędzie ID, nazwa paczki, link.
Skladnikipaczki (też muszę pomyśleć nad lepszą nazwą :P) i będzie zawierała jako klucz obcy id paczki, klucz obcy id produktu, ilość. Myślicie, że wtedy można by bez problemu wyświetlić wszystkie produkty wchodzące w skład danej paczki oraz w drugą stronę, jak masz dane produkty, to wyświetl link należący do danej paczki? Czy lepiej to inaczej rozwiązać?

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