Jak zrobić dobrą tabelę sklepu w MySQL?

0

Siemka, ogarnalem sobie skrypt rejestracji logowania i stronke w ktorej uzytkownik moze zobaczyc swoje dane i teraz chcialbym stworzyc sklep w ktorym uzytkownik bedzie mogl cos kupowac, na razie nie ma znaczenia co wazne zeby kod mi dzialal wtedy pojdzie juz jak po masle ;)!

Stworzylem dwie tabele pierwsza o nazwie przedmioty oraz druga sklep
w tabeli przedmioty dalem kolumny: id, userid, count, name, money - id to wiadomo, userid pobierac chce stad id uzytkownika, count to jaka ilosc danego przedmiotu posiada oraz name czyli nazwa tego przedmiotu a takze money (trzeba miec piniondze zeby cos kupic jednak nie ;d)

w tabeli sklep stworzylem kolumny id, name, price, - id wiadomka, name to nazwa tego przedmiotu oraz price czyli cena przedmiotu. zastanawiam sie jeszcze czy count tutaj tez by sie nie przydalo bo nie wiem jak zrobic zeby na stanie sklepu byla nieskonczona ilosc, tak wiec zrobilbym count 99999999 ^^

Myslicie ze taka struktura tabel bylaby dobra? Czy czegos brakuje mi tutaj? Nie chodzi mi o kod jakos sobie z tym poradze, tylko od strony logicznej czy to bedzie dobrze dzialac :P prosze o wypowiedzi ;)!

0

do testów i nauki od biedy może być, do systemu, który ma działa NIE. Brakuje dużo, np.

  • kategorie drzewiaste
  • zamówienia (standardowo nagłówki i pozycje)
  • faktury (standardowo nagłówki i pozycje)
  • kontrahenci
  • magazyn (kto powiedział, że sklep ma tylko jeden magazyn)
  • dokumenty magazynowe - np. wydanie towaru (wysyłka), przyjęcie towaru (zakup, zwrot od klienta, nieodebrana paczka, wysyłka na inny magazyn, przyjęcie z innego magazynu)
  • towary zamiast przedmioty z kolumnami opisującymi towary a nie nic nie mówiące
  • definiowane rabaty
  • ceny (dobrze mieć np. historię cen danego towaru)

no i na koniec albo wszystkie nazwy po polsku albo angielsku. Jak chcesz na poważnie poćwiczyć to się przyłóż a nie dwie tabelki z kolumnami z tyłka

0

Hm wiesz wiele z tych rzeczy moze mi sie przydac ale w późniejszym terminie jak skrypt bedzie dzialal na razie chcialbym zrobic w celach nauki zeby miec kod i zeby zobaczyc jak to dziala np w glowie chcialem to zrobic na zwyklym prostym przykladzie kupowanie owocow przez użytkownika dodac np jablko gruszka truskawka i pieniadze bo za cos oczywiscie musi kupic i na takim prosciutkim przykladzie zrozumiec logike dzialania oraz napisac kod:) mam nadzieje ze rozumiesz dlatego sa tylko 2 tabele bo tylko takie mi wpadly do glowy chcialbym najpierw to ogarnac a pozniej wdrazac kolejne trudniejsze rzeczy tabele itp stad pytanie co o tym sadzicie jak na poczatek i prosba o pomoc z tymi kolumnami czy dobrze to wymyslilem

0

Jak masz się uczyć to ucz się porządnie - a to nie oznacza że od razu masz mieć 1000 tabel.
Patrząc na to co rozpisałeś myślę że masz spory problem żeby odpowiednio posegregować dane i rozdzielić je na tabele. Napisałeś że w tabeli Przedmioty masz kolumnę money, bo user musi mieć kasę żeby kupić... No ok, ale czemu w takim razie tą właściwość która "należy" do usera, dajesz do tabeli Przedmioty? Jak będziesz miał 10 użytkowników i 1 przedmiot do kupienia, to w bazie danych będziesz miał 10 rekordów z tym samym produktem ale różną wartością "money"? To jest bez sensu. Ja tworzę po angielsku, tak mi łatwiej:

Items
Id
Name
Count
Price

User
Id
Name
Wallet (portfel :P )

I teraz przykład jak będą wyglądać dane:
Items
1, Głośniki 2w1 Sennheiser, 10, 399.99
2, TV 54" Samsung, 4, 2999.09

User
1, Andrzej Kkkkk, 123
2, Mariusz Buc, 10000

Mariusz Buc bogaty to kupi sobie, Andrzej biedny to nic nie kupi.

W momencie zatwierdzenia kupna przez użytkownika zrobisz edycje danej pozycji w tabeli Items i zmniejszysz wartość "Count" o tyle ile kupił dany user.

0

Hm czyli mowisz ze w users lepiej dac money i tam ile ma kasy co do tabeli items to chcialbym zeby w niej byly przedmioty ktore posiadaja uzytkownicy a w tabeli shop zrobic sklep i jesli uzytkownik kupi z tabeli np 10 truskawek to chcialbym zeby w tabeli items pokazalo mi ze ten i ten ma tyle i tyle takiego przedmiotu no bo jak w users bede to trzymal to juz w ogóle bedzie masakra bo bedzie gigantyczna jedna tabela chyba :-P

0

To zrób trzecią tabelę UserItems:
Id
PurchasedDate (data zakupu)
Item_Id
User_Id
Count
i wtedy dane w tej tabeli będą wyglądać tak:
1, 2017-06-30, 1, 1, 2
Co będzie oznaczać że 30 czerwca Andrzej Kkkkk kupił 2 głośniki Sennheiser.

1

w wersji BARDZO podstawowej powinieneś mieć przynajmniej następujące tabele
klient
id
imie
nazwisko
miasto
ulica

towar
id
nazwa
jednostka
stan
cena

zamowienie_naglowek
id
data_zamowienia
klient_id
zrealizowane

zamowienie_pozycja
id
zamowienie_id
towar_id
ilosc

żadne portfele, pieniądze itp. Co cię obchodzi czy i ile ktoś ma kasy? A jak "na razie" będzie źle to "później" lepiej nie będzie

0

Dosc konkretnie to opisales i dziekuje Ci za to skorzystam na pewno ale na poczatek potrzebuje tylko ogarnac skrypt do dzialania zeby zobaczyc co i jak i wtedy bede wdrazal kolejne i kolejne kolumny do tabel ;P

Myslicie ze na taka podstawe do nauki i zrozumienia tego wystarcza 3 tabele? Rozpisze jeszcze raz i prosze o ocenke, ma to byc zwykla bardzo banalna opcja do kupowania owocow w sklepie przez uzytkownikow biggrin.gif

Tabela1: dane uzytkownika po rejestracji oraz np 100zl poczatkowych pieniedzy
userid, username, useremail, userpassword, usermoney,
czyli wygladaloby to np tak:
Userid:1, Username:Tester1, Useremail:[email protected], Testerpassword: blablablabla, Usermoney:100zł.

Tabela2: chcialbym aby w tej tabeli znajdowalo sie to ile przedmiotow posiada kazdy z zarejestrowanych uzytkownikow czyli np:
id_uzytkownika, id_przedmiotu, ilosc_posiadanych_przedmiotow, - uzytkownik o id 1 posiada 100 sztuk przedmiotu o id 1 - nie wiem czy dobrze to rozmyslilem ^^

Tabela3: ta tabela moglaby robic za przedmioty dostepne do kupienia w sklepie czyli np:
id_przedmiotu, ilosc_w_sklepie (tutaj zrobic nieskonczona liczbe tylko nie wiem jeszcze raz), cena_przedmiotu, nazwa_przedmiotu
czyli w bazie wygladaloby to np tak:
ID:1 , Count:Unlimited, Price:150, Name: Trustawka
ID:2, Count:Unlimited, Price:500, Name: Gruszka
i tak zrobic z 5 owocków do kupienia w celach testowych wink.gif

Myslicie ze cos takiego byloby wporzadku czy inaczej to wymyslec?

0

wciąż nie łapiesz podstawowej logiki , @abrakadeber sensownie podał to czego KONIECZNIE potrzebujesz w bazie
i odpuść sobie "skrypty" i zajmij się sensownym projektem bazy
Tabela 1, od biedy może być, nie rozumiem po co "usermoney"
Tabela 2, bez sensu, użytkownik nie posiada przedmiotów , użytkownik ma zamówienia oraz ewentualnie dokumenty magazynowe związane z zamówieniami (WZ, FV)
Tabela 3, w najprostszej wersji w tabeli Magazyn trzymaj id_towaru, stan(ilość) oraz cenę , opisy towarów wyrzuć do odrębnej tabeli i tam umieść id_towaru, nazwę i ewentualne opisy towaru

Podsumowując, coś takiego nie było by w porządku

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