Aplikacja bazodanowa
2 posters
:: Projekt "Madagaskar" :: 4.INNE :: 1.C#: ogólnie
Strona 1 z 1
Aplikacja bazodanowa
Witam
Potrzebuję nakierunkowania od czego zacząć.
Mam bazę danych i nie wiem jaki przyjąć schemat.
1. Odczyt na początku do tabel (tymczasowych) publicznych.
2. Publiczne połączenie do bazy i odczyt przy każdej potrzebie.
Może nieskładnie ale nie wiem jak to lepiej opisać.
Potrzebuję nakierunkowania od czego zacząć.
Mam bazę danych i nie wiem jaki przyjąć schemat.
1. Odczyt na początku do tabel (tymczasowych) publicznych.
2. Publiczne połączenie do bazy i odczyt przy każdej potrzebie.
Może nieskładnie ale nie wiem jak to lepiej opisać.
zefirek- Egzaminator Warsztatów "Madagaskaru"
- Liczba postów : 41
Join date : 27/05/2013
Skąd : Gryfów Śląski
Re: Aplikacja bazodanowa
Jeżeli nie stosujesz żadnego wzorca projektowego bazy danych, to dane do tabeli tymczasowej (jeśli miałeś na myśli pamięciową np. jakąś kolekcję w c#) ładujesz w określonych przypadkach, np. gdy masz konieczność przeszukiwania ciągle tego samego zestawu danych z bazy (np. za każdym razem przeszukiwania np. listy kategorii towarów sklepu żeby porównywać to z jakąś wybraną kategorią przechowywaną w zmiennej lokalnej) w jakiejś dużej pętli , unikasz wtedy wielokrotnego połączenia z bazą danych i odpytywania ciągle tego samego zestawu danych w bazie a preszukujesz tabele pamięciową (program działa szybciej, baza jest mniej obciążona)
Jeżeli natomiast, w jakiejś funkcjonalności w swojej aplikacji, masz zamiar odpytać ten zestaw danych tylko jednokrotnie (np. naciskając guzik w "szukaj" albo "importuj" albo "pokaż" .. whathever) to kompletnie nie ma sensu przerzucać tych danych do tabeli pamięciowej , bo zysk żaden, wcale nie odciążasz bazy ... no chyba , że (poprzez serializację) z użyciem jakiegoś wzorca projektowego mapujesz dane z bazy do zestawu obiektów po stronie c#.
W Troelsenie (c# 2010) pisze, że powinno się stosować taką strategię, że po nawiązywaniu połączenia z bazą i puszczeniu do niej np. zapytania , albo inserta albo update czy delete , od to połączenie z bazą należy zamknąć (a nie utrzymywać je np. na czas sesji użytkownika , w której buszuje po aplikacji przez dłuższy czas) ... Troelsen argumentuje to tym, że serwer bazy danych bardziej jest obciążany ilością otwartych połączeń/sesji niż ciągłym otwieraniem i zamykaniem połączeń w celu wykonania pojedynczej np. dml'ki po np. naciśnięciu klawisza w aplikacji.
Jeżeli chcesz na prawdę po bożemu oprogramować warstwę połączeniową między aplikacją a bazą danych , to zainteresuj się na google wzorcami projektowymi dla danych jak: DAO, albo Hibernate (dla .net NHibernate) lub MyBatis ... ja preferuję bardziej DaO od Nhibernate, MyBatisa nie znam.
Jeżeli natomiast, w jakiejś funkcjonalności w swojej aplikacji, masz zamiar odpytać ten zestaw danych tylko jednokrotnie (np. naciskając guzik w "szukaj" albo "importuj" albo "pokaż" .. whathever) to kompletnie nie ma sensu przerzucać tych danych do tabeli pamięciowej , bo zysk żaden, wcale nie odciążasz bazy ... no chyba , że (poprzez serializację) z użyciem jakiegoś wzorca projektowego mapujesz dane z bazy do zestawu obiektów po stronie c#.
W Troelsenie (c# 2010) pisze, że powinno się stosować taką strategię, że po nawiązywaniu połączenia z bazą i puszczeniu do niej np. zapytania , albo inserta albo update czy delete , od to połączenie z bazą należy zamknąć (a nie utrzymywać je np. na czas sesji użytkownika , w której buszuje po aplikacji przez dłuższy czas) ... Troelsen argumentuje to tym, że serwer bazy danych bardziej jest obciążany ilością otwartych połączeń/sesji niż ciągłym otwieraniem i zamykaniem połączeń w celu wykonania pojedynczej np. dml'ki po np. naciśnięciu klawisza w aplikacji.
Jeżeli chcesz na prawdę po bożemu oprogramować warstwę połączeniową między aplikacją a bazą danych , to zainteresuj się na google wzorcami projektowymi dla danych jak: DAO, albo Hibernate (dla .net NHibernate) lub MyBatis ... ja preferuję bardziej DaO od Nhibernate, MyBatisa nie znam.
Ostatnio zmieniony przez koszmarek dnia Wto Sty 28, 2014 6:49 pm, w całości zmieniany 1 raz
koszmarek- Lider grupy "Madagaskar"
- Liczba postów : 596
Join date : 25/10/2012
Re: Aplikacja bazodanowa
to się napisałem !
.. .a Ty pisząc "tymczasowe" tabele, masz na myśli nie tabele pamięciowe, ale tabele które ograniczają użytkownikowi dostęp do całej bazy, co ?
.. .a Ty pisząc "tymczasowe" tabele, masz na myśli nie tabele pamięciowe, ale tabele które ograniczają użytkownikowi dostęp do całej bazy, co ?
koszmarek- Lider grupy "Madagaskar"
- Liczba postów : 596
Join date : 25/10/2012
Re: Aplikacja bazodanowa
Problem jest taki że kompletnie nie wiem jak to powiązać.
Na form1 mam datasety itp, i gdy z formXX chciałbym skorzystać z tych dataset niestety nie mogę i poszukuję rozwiązania które ułatwi mi to.
Poczytam o DAO może coś zrozumiem.
Na form1 mam datasety itp, i gdy z formXX chciałbym skorzystać z tych dataset niestety nie mogę i poszukuję rozwiązania które ułatwi mi to.
Poczytam o DAO może coś zrozumiem.
zefirek- Egzaminator Warsztatów "Madagaskaru"
- Liczba postów : 41
Join date : 27/05/2013
Skąd : Gryfów Śląski
Re: Aplikacja bazodanowa
Ok, czyli z grubsza chcesz znać totalne podstawy.
Na dobry początek spróbuj uzyskać dane z bazy do datasetu nie stosując żadnego wzorca projektowego warstwy danych:
http://stackoverflow.com/questions/9412277/obtaining-a-dataset-from-a-sql-server-database
http://stackoverflow.com/questions/9412785/c-sharp-retrieving-dataset-from-sql-server-2008
Jak to Ci się uda (na dobry początek) to potem podejmij decyzję, czy (wykorzystując tylko podstawową wiedzę z powyższych linków) chcesz oprogramować własne klasy (pewnie statyczne) , które zawierają np. metodę do otwierania / zamykania połączenia z bazą danych oraz zawierają metodę do uruchomienia polecenia do bazy (która w parametrze przyjmuje treść selecta, albo inserta albo delete itp.) ... bo np. Ci się śpieszy i musisz jednorazowo i szybko komuś zrobić aplikację
... czy chcesz to zrobić "po bożemu" , czyli oprogramować ter same klasy-->metody (o których piszę powyżej) ale zgodnie z wzorcem np. DaO, tak abyś miał gotowy unwersalny "core" obsługi komunikacji pomiędzy c# a dowolną bazą danych (MsSQl? Oracle?), który to "core" posłuży Ci w przyszłości (jako Twoja biblioteka połączeniowa z bazą) do wielu innych aplikacji które będziesz tworzył w przyszłości.
Decyzja zależy od tego , w jakiej sytuacji się znajdujesz (w jakich okolicznościach masz napisać ten program)
Nie musisz mi pisać, co postanowiłeś :p
Na dobry początek spróbuj uzyskać dane z bazy do datasetu nie stosując żadnego wzorca projektowego warstwy danych:
http://stackoverflow.com/questions/9412277/obtaining-a-dataset-from-a-sql-server-database
http://stackoverflow.com/questions/9412785/c-sharp-retrieving-dataset-from-sql-server-2008
Jak to Ci się uda (na dobry początek) to potem podejmij decyzję, czy (wykorzystując tylko podstawową wiedzę z powyższych linków) chcesz oprogramować własne klasy (pewnie statyczne) , które zawierają np. metodę do otwierania / zamykania połączenia z bazą danych oraz zawierają metodę do uruchomienia polecenia do bazy (która w parametrze przyjmuje treść selecta, albo inserta albo delete itp.) ... bo np. Ci się śpieszy i musisz jednorazowo i szybko komuś zrobić aplikację
... czy chcesz to zrobić "po bożemu" , czyli oprogramować ter same klasy-->metody (o których piszę powyżej) ale zgodnie z wzorcem np. DaO, tak abyś miał gotowy unwersalny "core" obsługi komunikacji pomiędzy c# a dowolną bazą danych (MsSQl? Oracle?), który to "core" posłuży Ci w przyszłości (jako Twoja biblioteka połączeniowa z bazą) do wielu innych aplikacji które będziesz tworzył w przyszłości.
Decyzja zależy od tego , w jakiej sytuacji się znajdujesz (w jakich okolicznościach masz napisać ten program)
Nie musisz mi pisać, co postanowiłeś :p
koszmarek- Lider grupy "Madagaskar"
- Liczba postów : 596
Join date : 25/10/2012
Re: Aplikacja bazodanowa
Wiesz, mam pomysł na usprawnienie pracy i jej automatyzacje, jednak z braku czasu nie mogę posiedzieć i przemyśleć wszystkiego i to trwa. Informatyk chce ok 10000 za aplikacje o którą nam chodzi i w dodatku w vb excelu itp. Tak sobie wymyśliłem że może coś sklece i jak do tej pory mam zarys (już napisany c#) aplikacja ale trafiłem na problemy z bazą i szukam rozwiązania lub chętnych do współpracy (odpłatnej).
zefirek- Egzaminator Warsztatów "Madagaskaru"
- Liczba postów : 41
Join date : 27/05/2013
Skąd : Gryfów Śląski
Re: Aplikacja bazodanowa
@Zefirek, ja się w Twoją propozycję odpłatnej współpracy nie ładuję, bo musiałbym znaleźć czas na to , po "copro" , rodzinie, "Madagakaskarze" ... gdybym się wpakował jeszcze w Twoja propozycję ... to by oznaczało, że jestem bez wyobraźni.
Natomiast możesz w tej samej kategorii na forum ("C# ogólnie") strzelić postem , że szukasz ludzi do współpracy. Ja tu nie widzę żadnego konfliktu interesów z moim projektem.
Natomiast możesz w tej samej kategorii na forum ("C# ogólnie") strzelić postem , że szukasz ludzi do współpracy. Ja tu nie widzę żadnego konfliktu interesów z moim projektem.
koszmarek- Lider grupy "Madagaskar"
- Liczba postów : 596
Join date : 25/10/2012
Re: Aplikacja bazodanowa
Wiesz, tak też myślałem ze może znajdzie się ktoś (a możne w ramach projektu dorobimy) chętny do współpracy. Zrobię jak piszesz, zapytam innych możne mają trochę czasu.
Pomysł jest fajny i na czasie.
Pomysł jest fajny i na czasie.
zefirek- Egzaminator Warsztatów "Madagaskaru"
- Liczba postów : 41
Join date : 27/05/2013
Skąd : Gryfów Śląski
:: Projekt "Madagaskar" :: 4.INNE :: 1.C#: ogólnie
Strona 1 z 1
Pozwolenia na tym forum:
Nie możesz odpowiadać w tematach