![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym zaczerpnąć rady w sprawie baz danych.
Napisałem pętlę, która sprawdza, który towar w sklepie został sprzedany. W efekcie otrzymuje numery ofert (sprzedanych) i wykonuję kolejną pętle by pobrać datę i ilość sztuk. Problem w tym, że nie chcę tych danych tylko wyświetlić, a zapisać dalej w bazie. Jak w takim razie sensownie zapisać np: 5 szt | 15.09.2012 | 1 szt | 14.09.2012 | 2 szt | 13.08.2012 | by móc swobodnie na tym operować (piszę ten skrypt by pobierać statystyki według daty, ilości sprzedanych itd)? Lepiej zrobić jeden rekord z polem TEXT i tam wypisać dane (z separatorami), czy może lepiej zrobić relację: numer_oferty | szt | data i trzymać to w osobnej tabeli? Tylko te ostatnie rozwiązanie wydaje się być mało rozsądne przy większej sprzedaży. Może ma ktoś lepszy pomysł? Ten post edytował szuki 27.09.2012, 09:15:23 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że nie ma sensu przepisywać już istniejących i myślę, że powiązanych ze sobą danych, wystarczy zastosować jedno zapytanie by je pobrać.
Załóżmy, że w jednej tabeli masz id towaru, a w drugiej id zamówienia, id towaru, liczbę sztuk oraz datę.
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
dokładam się do opinii przedmówcy dodając, że można sobie zrobić z tego ładny widok, na którym potem można pracować
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cześć, dzięki za radę. Moje niedopatrzenie, bo nie zaznaczyłem, że informacje z drugiej pętli (tj. data, ilość szt.) są pobierane z innego serwera i "generowane w locie". Muszę najpierw je pobrać (co już robię) by sensownie zapisać i dopiero na nich operować.
Także zastanawiam się czy trzymać powiedzmy 6 dat/szt w jednym rekordzie, oddzielonych separatorami (np: 2012-09-25,1;2012-08-23,2;) czy każdą datę trzymać osobno - jako jeden rekord. Co będzie lepsze, jeżeli później będę chciał selectem pobrać wszystkie rekordy o określonej dacie? Czy jeżeli będę trzymał dane w postaci csv, to muszę pobierać każdy rekord by sprawdzić czy jest w nim dana data, czy zwykłe zapytanie z selectem wystarczy? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie ma się co nad tym rozwodzić. Najlepsze rozwiązanie to skalowalne rozwiązanie w takich przypadkach bo nie do końca wiesz co potem można z tym robić (czasem wręcz można się kapnąć po zrobieniu tego że da się wyciągnąć jeszcze więcej). Zatem zrób oddzielny rekord dla każdego wpisu - nie baw się w CSV - to format zapisu plików a nie danych w bazie. Na danych wrzuconych w sposób standardowy można ładnie pracować, obrabiać je i wyświetlać dokładnie wg potrzeb - w przypadku CSV już sortowanie sprawiało by problem a co dopiero "Podaj mi ile sprzedano X dnia Y" - jak to wyciągniesz?
![]() Co do drugiego pytania to w sumie zwykłe zapytanie wystarczy ale będzie o wiele mniej wydajne i gdy masz możliwość wyboru - nie ma się co zastanawiać - zalet rozwiązania NIE-CSV jest pełno a podaj mi jedną zaletę CSV? ![]() Ten post edytował Sephirus 27.09.2012, 10:01:51 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 21.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Troszeczkę bałem się o wydajność przy wielotysięcznej liczbie rekordów, ale w sumie masz rację. Dobrze dobrane typy pól i powinno być ok nawet przy większej liczbie wpisów. Dziękuję za rady. Co do CSV, chyba żadnej.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zapewniam Cię że przy skomplikowanych zapytaniach większą wydajność i tak uzyskasz bez CSV - bo pracujesz na konkretnym polach - więc jeśli oto chodzi to wybór też jest dobry.
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.06.2025 - 20:51 |