Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - gemGreg

Strony: [1] 2 3 4 5 ... 11
1
Szkółka / Odp: Początkujący...we wszystkim :(
« dnia: Wrzesień 12, 2012, 23:01:34 »
Studia faktycznie byłyby pomocne. Mi pomogły mimo tego, że były to studia na Politechnice Częstochowskiej :D Zawsze to jakieś nakierowanie na dobre drogi rozwoju. Może spróbuj w innym mieście jeśli ci na to praca pozwoli.

2
Inne / Odp: Problem z zapytaniem (MySql)
« dnia: Maj 31, 2012, 19:53:01 »
dzięki ci o panie, zaprawdeś wielki iś mi pomógł ;)

3
Inne / Problem z zapytaniem (MySql)
« dnia: Maj 31, 2012, 16:50:52 »
Witam

Mam pewien problem ze zbudowaniem zapytania mysql.

Mam takie 3 tabele:

osoby( id(int), imie(varchar) )
ksiazki (id(int), tytul(varchar) )
osoby_ksiazki ( id(int), id_osoby(int), id_ksiazki(int) )

Przykładowe dane to 3 osoby:
Ala, Andrzej, Ola.

Ala ma 2 książki, Andrzej jedną, a Ola nie ma wcale

Potrzebuje zapytanie które pokaże mi listę osób i ich książki po przecinku (uwzględniając osoby, które nie mają żadnych książek)

Zrobiłem takie zapytanie:

SELECT osoba.imie, GROUP_CONCAT( ksiazka.tytul )
FROM osoba_ksiazka
   RIGHT OUTER JOIN osoba ON osoba.id = osoba_ksiazka.id_osoby
   JOIN ksiazka ON ksiazka.id = osoba_ksiazka.id_ksiazki
GROUP BY osoba.imie

Niestety nie wyświetla mi osób, które nie mają żadnych książek, mimo użycia RIGHT OUTER JOIN które rzekomo powinno wyświetlać wszystkie rekordy z tabeli osoba.

4
Gry / Odp: Diablo 3
« dnia: Maj 18, 2012, 14:43:08 »
chętnie przyjmę guest pass do Diablo III :) - gemgreg@gmail.com :)

5
Projektowanie kodu / Odp: GUI skalowalność kontrolek
« dnia: Kwiecień 22, 2012, 14:06:07 »
Ja np. lubię jak w grach jest możliwość wybrania rozmiaru gui w opcjach z kilku dostępnych. Wtedy programista sobie każdy rozmiar pre-dostosowuje żeby ładnie wyglądał nie martwiąc się o automatykę.

6
Dzięki za udzielone informacje Kos.
Mam nadzieję, że ktoś kiedyś z tej wiedzy też skorzysta wchodząc tu.
Zobaczę co mi się uda wynegocjować w firmie. Aplikacja działająca w tle na serwerze czy możliwość dodania około 30 userów do mysqla ;) Jak się potem zdecyduję tą aplikację rozpowrzechniać dalej to pewnie napiszę w stylu: client <-> serwerek <-> baza.

7
No dobra, ale paczkować każdemu userowi w instalatorze serwer MySQL tylko po to, by jeden administrator z niego skorzystał?
Zrób instalator bazy jako osobny program.
Serwera bazy nie zamieszczam przecież z aplikacją. Serwer już sobie trzeba we własnym zakresie mieć / zainstalować.

Co do tego czy rozwiązałeś mój problem.

Kilka rozwiązań mi podałeś. Rozwiązanie z endpointem mi się chyba najbardziej podoba. Chciałbym jednak uniknąć pisania czegoś co by musiało gdzieś działać non stop w tle i zarządzać autoryzacją. A połączenie aplikacji C# i skryptu php hmm. Nie bardzo wyobrażam sobie jak to zrealizować.

Co do tego jak to robię teraz to jednak nie ma chyba bezpiecznej metody na połączenie program <-> baza z jednym kontem wszystko-mogącym w bazie.

8
Gdzie się wchodzi w Twoją aplikację? Jest jeden komputer w firmie i sobie do niego podchodzą, z dowolnego komputera przez sieć?
Baza danych jest jedna centralna. Może być dowolna ilość stanowisk z aplikacją, a userzy mogą na dowolnym stanowisku się na swoje konto zalogować.

No to do wyboru rzeczywiście. :-)
No wyborem jest czy offline w sieci lokalnej czy przez neta :P

Czy to będzie w localhoscie czy przez internet ma nie mieć znaczenia.
Noo, powiedziałbym że to ma fundamentalne znaczenie, czy gromadzone przez Twoją aplikację dane mają być zcentralizowane czy nie. Określ się, bez tego nie ma jak dyskutować dalej.
Wg. mnie to czy będzie offline czy online nie ma związku z tym czy baza będzie centralnie czy nie. W obu tych przypadkach będzie centralnie.

Jak jest jedna baza na wszystkich userów, to raczej nie program kliencki ma to robić, tylko administrator, nie?
Nie rozbijałem aplikacji na klienta i na admina. Zależnie od tego jakie ma twoje konto uprawnienia to możesz robić.

9
Może faktycznie napisałem to niezbyt zrozumiale ;)

Przedstawię krótką scenkę sytuacyjną, która zademonstruje jakiego typu aplikacja to jest.

Pracownicy przychodzą do pracy i wykonują sobie jakieś czynności poza komputerem. Co jakiś czas mają obowiązek jednak wejść w moją aplikację, zalogować się na swoje konto i dodać odpowiednie wpisy zależnie od tego co dotychczas zrobili.
Jest też w firmie przydzielona osoba do administrowania aplikacją. Ma też konto w programie o wyższych uprawnieniach. Może dodawać nowe konta, resetować hasła, uzupełniać słowniki, ma wgląd w wprowadzone przez pracowników wpisy, może generować raporty itp.


To jak firma chce rozwiązać kwestie bazy danych zostawiam do indywidualnego wyboru. Wymaganie jest by była to baza mysql. Czy to będzie w localhoscie czy przez internet ma nie mieć znaczenia. Tutaj jest ten cały "kod sql". Bo jakoś na początek trzeba tą strukturę bazy stworzyć (puste tabele, jakieś słowniki domyślne itp). Jak na razie nie robiłem żadnego instalatora, który to będzie tworzył (może kiedyś), więc dostarczam kod tworzący strukturę bazy.

W tym momencie kwestie połączenia z bazą mam rozwiązaną tak, że jest jedno konto w bazie i aplikacja się łączy do niego. A autoryzacja użytkowników odbywa się przez logowanie w aplikacji, która sobie sprawdza w tabeli USER w bazie czy wprowadzono poprawny login i hasło. Nie ma triggerów ani procedur składowanych.

Widzę w tym moim rozwiązaniu właśnie problem, dlatego tu napisałem posta :)

Bo jak aplikacja zna hasło do konta, które wszystko może zrobić z bazą to jeśli ktoś jakoś wydostanie tego connection stringa z programu (gdziekolwiek jest on zapisany czy wkompilowany w exe, czy w zaszyfrowanym pliku), to może wszystko ;)

Samą aplikację mam praktycznie gotową, ale jak na razie łączy się ona na sztywno z moją bazą danych. Chcę więc jakieś w miarę proste do realizacji i bezpieczne rozwiązanie na umożliwienie przyszłemu administratorowi na podłączenie tej aplikacji pod swoją bazę.

ps. Dodam że aplikacja jest napisana w C# :)

10
Ogólnie to raczej powinieneś łączyć się albo z localhostem albo z usługą sieciową, która komunikuje się z bazą danych. W przeciwnym razie ktoś mógłby zrobić lewą aplikację, która łączy się z bazą danych i np. wycina stamtąd wszystkie dane.

http://img820.imageshack.us/img820/1641/itsfinetrustme.png

Mógłbyś rozwinąć myśl odnośnie łączenia się z usługą sieciową? Chodzi o jakiś programik-serwer?
Co do localhosta to jasne, nawet w moim przypadku w większości odbywałoby się to w sieci lokalnej co nie zmienia faktu, że aplikacja gdzieś musi mieć zapisane to hasło do bazy w aplikacji klienskiej (jeśli już mówimy o bezpośrednim połączeniu z bazą).

11
Projektowanie kodu / Łączenie się aplikacji z bazą danych vs enduser
« dnia: Kwiecień 17, 2012, 10:55:53 »
Witam

Piszę aplikację, która łączy się z bazą danych. Tematyka aplikacji nie jest ważna.
Istotne jest natomiast, że aplikacja umożliwia obsługę wielu użytkownikom, którzy posiadają władne konta.

Zagwozdką dla mnie jest jak rozwiązać sprawę połączenia z bazą danych.

Pomysł 1:
Użytkownik ściąga aplikację w której jest instalka + kod sql bazy, który sobie musi zaimportować do swojej bazy. Użytkownicy i ich hasła są zapisane w tabeli w bazie, a aplikacja się z nią łączy przez podane dane połączenia przy instalacji programu.

Pomysł 2:
Użytkownik ściąga aplikację w której jest instalka + kod sql bazy, który sobie musi zaimportować do swojej bazy. Użytkownicy programu są użytkownikami samej bazy danych i połączenie z bazą następuje indywidualnie. Nie jest wymagane hasło do połączenia przy instalacji (tworzymy w bazie danych konto dla pierwszego użytkownika) (może być problem przy bazie np mysql z ograniczoną ilością użytkowników do np 1)

Oba te pomysły mi zalatują jakimś nieprofesjonalizmem. Pewnie najlepiej było by stworzyć jakąś aplikację serwera autoryzującą użytkowników, ale chciałem tego uniknąć.
Jest jakiś bezpieczny sposób przechowywania connectionstringa w aplikacji klienta?

Jak powiedzmy wdrażam osobiście taką aplikację np w firmie w której pracuję to mogę sobie wkompilować na sztywno połączenie z bazą, ale już jako produkt to nie wchodzi w grę.

Jeśli temat trafił w złe miejsce na forum to proszę o przeniesienie jakiegoś miłego admina hehe.

12
Dla idei :D
Wiki:
e-> http://software.com.pl/walidacja-danych-czy-faktycznie-potrzebna/

Tak tak to bardzo zabawne. :P Jak bym tak miał myśleć to program dla UBOJNI który piszę przepuszczał by zwierzęta z numerami które okazuje się, że rok temu były zapisane do bazy (czyt. już kiedyś ubite) ale teraz całkiem żywe dostarczone do zakładu gdzie ma się je PONOWNIE? ubić ! :P Chciałbyś takie mięsko zjeść ?:P

13
Jak dotąd nic takiego niestety nie znalazłem.

Może to by był jakiś pomysł parsować błędy sqla :) Typu jeśli w stringu błędu jest słowo PESEL i CONSTRAINT jakiś tam to oznacza naruszenie unikatowości PESELA :P

14
Nr pesel jest takim przykładem.

Dzięki w sumie nie pomyślałem o procedurach. Jak ktoś zna jakiś inny sposób bez dodatkowego kodu w samej bazie to chętnie poczytam ;)

15
W przeciwieństwie do zwykłych prostych sytuacji, gdzie mogę pokazać użytkownikowi komunikat że np. text box w który ma wpisać coś jest błędnie wypełniony, sytuacje błędów przy wykonywaniu zapytań do baz danych już są trochę trudniejsze.

Przypuśćmy że jest następująca sytuacja, gdzie użytkownik ma wprowadzić szereg danych a jedną z nich jest numer który ma być unikatowy. Wprowadza jakiś numer i okazuje się że naruszył więzy unikalności i jedyne co mogę zrobić to mu ten długi i niezrozumiały sql'owy błąd pokazać.

Mógłbym oczywiście przed wysłaniem inserta wysłać inne zapytanie które mi zwróci czy taki numer już jest w bazie, ale to jest zapytanie więcej i nie wiem czy to jest taki dobry pomysł.

Zna ktoś jakiś optymalny i elegancki sposób na wychwytywanie błędów i pokazywanie userowi w sposób zrozumiały?

Strony: [1] 2 3 4 5 ... 11