![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 23.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chciałem się czegoś nowego nauczyć i wymyśliłem sobie małą aplikację, jednak ugrzązłem praktycznie na początku :( Generalnie chodzi o programik pozwalający zapanować nad wydawanym towarem. W MySQL mam tabele: (1) tb_laczniki_wyjscie - kolumny: LaczWydID (Primary, A.I.), LacznikID (Index do tb_laczniki_main - LacznikID), DataZam, NrZam, IloscZam; (2) tb_laczniki_main - kolumny: LacznikID (Primary, A.I.), Nazwa, Material, Norma Cel jest taki, aby przez formularz przesłać do tabeli nr (1) informacje o tym, jakie łączniki i w jakiej ilości są zamawiane (pola edytowalne), a także dorzucenie do bazy daty składanego zamówienia (aktualnej, bez możliwości edycji). Nie wiem, które rozwiązanie będzie poprawniejsze pod względem projektowania i prostrze do oprogramowania i tu proszę o podpowiedź. Zastanawiam się nad rozwiązaniem tego w ten sposób: (1) W formularzu wywołuję poleceniem SELECT wszystkie rekordy z tabeli (2) w układzie LacznikID, Nazwa, Material, Norma i dodatkowo z tabeli (1) IloscZam. Następnie po uzupełnieniu ilości wysyłam do bazy, do tabeli (1) i kolumn LacznikID, DataZam, NrZam i IloscZam tylko te rekordy, których wartość w komórce IloscZam jest większa niż 0, ewentualnie wszystkich jak leci (ok. 100 indeksów). (2) W formularzu tworzę listę rozwijaną pobierającą dane z tabeli (2) - LacznikID, Nazwa, Material i Norma i mam dodatkowe pole, w którym wpisuję ilość. Po kliknięciu wstaw, dane zapisywane są jak w powyższym przykładzie. Na logikę wydaje się, że sposób (1) jest łatwiejszy do obsłużenia z punktu widzenia użytkownika, ale czy nie będzie problemów z przekazaniem do bazy takiej ilości danych. No i jak uwzględnić aktualną datę podczas przekazywania danych do bazy. Nie ma sensu tworzyć pola nie aktywnego w formularzu. Będę wdzięczny za Wasze opinie i sugestie. Nie mam za wiele co zamieszczać kodu, bo jeszcze nie ruszyłem z tymi zagadnieniami :) Pozdrawiam, szakal |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Sposób 1 jest idiotyczny. Spowoduje mnóstwo problemów, których w tym momencie nawet nie mozna przewidziec.
Sposób drugi jest dobry. A datę możesz uzupełnić, albo przez dodanie wartości domyślniej na pole w tabeli, albo dopisując w select np. Date(NOW()) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 0 Dołączył: 23.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Co do drugiego rozwiązania, to mam coś takiego:
Zależy mi, aby z bazy były wyciągnięte wartości z kolumn: Nazwa, Material i Norma (tabela tb_laczniki_main) i wyświetlone w jednym ciągu, oddzielone np. przecinkami - przykład: Śruba M20 x 150, 10.9 tZn, ISO 4014. Domyślam się, że muszę pokombinować z linią , tylko za bardzo nie wiem, jak połączyć poszczególne dane - przecinkiem? Może coś takiego:
ma to sens? Sposób 1 jest idiotyczny. Spowoduje mnóstwo problemów, których w tym momencie nawet nie mozna przewidziec. A w jaki sposób można przyspieszyć wprowadzanie danych? W przypadku drugiego sposobu trzeba każdą pozycję osobno wprowadzić. Jeśli będziemy mieli kilkanaście lub kilkadziesiąt pozycji, trochę to zajmie. A pierwszy sposób pozwala - przynajmniej teoretycznie - dość szybko wprowadzić ilości zamawianego towaru przy właściwych pozycjach. Idea jest taka, aby każde zamówienie trafiało do tabeli tb_laczniki_wyjscie, otrzymywało tam numer kolejny i tyle. Na chwilę obecną nie ma za bardzo potrzeby zajmowania się ilościami danych trafiającymi do bazy. Tak sobie myślę, że jakby w każdą pustą komórkę z kolumny 'Ilość zamówiona' przy wyjściu dodawane było automatycznie 0, to nie powinno chyba być problemów? A może jest inne rozwiązanie? szakal Ten post edytował kecajs 31.07.2015, 22:42:06 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.08.2025 - 04:07 |