Stworzenie Bazy Danych na sieci LAN

witam,

Jako, że to mój pierwszy post i jestem nowym użytkownikiem proszę o wyrozumiałość w kwestii zamieszczonego wątku, a w razie potrzeby potrzeby przeniesienia do odpowiedniego tematu gdyż nie wiedziałem gdzie napisać. Otóż chciałbym stworzyć prosty ‘program’ do przechowywania danych na własne potrzeby, który byłby zamieszczony na wewnętrznym serwerze u mnie w domu. Chodzi o to by mogło z niego korzystać kilku użytkowników na raz. Proszę o poradę od czego zacząć gdyż jestem żółtodziobem w kwestiach programowania etc.

Witam.

To dość ambitne zadanie jak na początek. Jeśli zależy Ci na czasie sugeruję użycie istniejących rozwiązań. Chodzi chyba jednak o naukę proponuję więc zacząć od wyboru konkretnego języka programowania. Osobiście jeśli miałbym coś takiego napisać uprościł ten program do bazy danych zapisywanej na lokalnym dysku. Jeśli taki program zostałby podzielony na dwa moduły (logowanie do systemu, zapis na dysku) można by później dopisać moduł sieciowy. Tak bym to proponował zrobić w celach edukacyjnych. Zrobienie tego tak jak to powinno wyglądać i działać to raczej zadanie dla grupy zawodowych programistów. Nie mniej nie zniechęcaj się nawet nieudana próba może Cię dużo nauczyć. Podaj więcej informacji na temat tego jak to sobie wyobrażasz to będę w stanie powiedzieć coś konkretniejszego.

Chodzi mi o coś do przechowywania i katalogowania danych. Logowanie się do systemu, tam mamy widok spraw/kontaktów. Wszystkie sprawy są katalogowane wg. numerów. Kliknięcie na numer powoduje przeniesienie do okna kontaktu/sprawy.Z tym, że w sprawie mamy 2 okna danych. Pod pierwszym linkiem widnieje klient a pod drugim dłużnik. po kliknięciu bądź na dłużnika czy klienta wyświetla się nowe okno z danymi. Tam są dane osobowe/kontaktowe, miejsce na notatki i tym podobne. Wszystko można w każdej chwili edytować a także dodawać nowe kontakty. Ponadto widnieje taka opcja jak Poczta. Można dodawać notatki o przesyłkach jakie wychodza lub przychodzą

Aby to zrobić potrzebujesz:

  1. umiejętności programowania w jakimś języku;

  2. zgodnej z tym językiem znajomości jakiejś technologii tworzenia interfejsu użytkownika (żeby móc zrobić wszystkie te okienka logowania i obsługę klikania);

  3. umiejętności obsługi jakiejś bazy danych (aby móc wykonać jej strukturę);

  4. znajomości języka SQL (aby móc pobierać i zapisywać dane z/do bazy);

  5. znajomości jakiejś technologii służącej do obsługi bazy danych z języka programowania (aby połączyć to w całość).

To, że baza danych będzie w sieci lokalnej nie ma tu żadnego znaczenia. Równie dobrze może być na lokalnym dysku, a równie dobrze na księżycu, to kwestia jedynie konfiguracji.

Pytanie co już umiesz?

Pewnie nie umie nic i czeka na gotowiec. Najtrudniej będzie zrobić w tym synchronizację między klientami, reszta nie jest problemem (tylko i wyłącznie obsługa bazy + tworzenie okienek) :slight_smile:

Można by zrobić osobną tabelę w bazie danych i to w niej zapisywały by się obecnie włączone aplikacje (w stylu ip, nick usera) Po czym aplikacje wraz z wysyłaniem do bazy wysyłały by dane do siebie wzajemnie :slight_smile: Nie mam pomysłu jak by to zrobić inaczej :slight_smile:

Drobok pewnie Cię zdziwi ale nie liczę na gotowca, przede wszystkim liczę na rady i na odpowiedzi użytkowników takich jak somekind. Umiem Html i mniej więcej php - wiem, że przy tym to jest nic, ale mam już mniej więcej wskazane rzeczy, które muszę opanować.

Więc dlaczego nie zrobisz tego bazując na stronie internetowej ?

A co do gotowca, za długo siedzę na forum by myśleć inaczej w takich tematach :slight_smile:

Czyli np.: MS Visual Studio 1) i 2) MS SQL Server 3) reszta można dobrać do tych programów. Ja używam połączenia Java 1) Swing 2) MySQL 3) Hibernate 5). Problem w tym że możliwości jest sporo i trudno się zdecydować na konkretną. Jeśli znasz php to da się to zrobić i przy jego pomocy. I tu się pojawia największy problem, decydując się na konkretne rozwiązanie musisz rozmawiać z osobami zajmującymi się właśnie nimi. Wkład innych osób będzie się ograniczał do koncepcji. Dla bazy może to nie ma znaczenia gdzie działa ale w przypadku gdy chcemy się do niej dostać spoza sieci prywatnej musimy mieć odpowiednio skonfigurowany router (mapowanie portów DyDNS albo statyczne IP…).

Nie rozumiem - jaką synchronizację? Dane w bazie będą zsynchronizowane z definicji, kwestia w sumie jedynie zabezpieczenia przed jednoczesną edycją rekordu przez dwie osoby (np. timestampem).

Jeśli już trzymać się konwencji, to MS Visual Studio to tylko IDE. Językiem może być C#, a technologią GUI np. WinForms.

No właśnie się nie trzymamy w jednym ciągu są wymieniowe narzędzia i technologie tworzące całość nie mniej MS VS ogranicza nam wybór języka i technologie GUI. Ale to już off topic wprowadzający niepotrzebne zamieszanie. Czekam na dalsze pytania od Bad_Apple bo temat wydaje się zamknięty.

Chodziło mi o to tylko, że z jednej strony wymieniłeś narzędzie (MS VS), a z drugiej język i technologię (Java i Swing), co jest bez sensu.

Owszem, VS ogranicza nam wybór do jednego z kilkudziesięciu języków, ale które środowisko nie wprowadza ograniczeń?

Bez sensu to jest ten spór. Wybierając VS ograniczamy się do kilku języków a nie do kilkudziesięciu. I dlaczego to jest bez sensu? Problem można rozwiązać przy pomocy wymienionych narzędzi bądź języków i technologi. Jedne wykluczają drugie. Chyba że można używać Javy i Swing w VS albo C# i F# w Swingu. Tak na marginesie to Swing to raczej biblioteka. Ale życzę powodzenia w katalogowaniu wszystkich tworów programistów i tworzeniu tego typu dyskusji bo ja już w niej nie mam zamiaru uczestniczyć.

Ale się uparłeś :slight_smile: Kilkudziesięciu, a konkretnie są to następujące http://www.dotnetlanguages.net/DNL/Resources.aspx.

W swoim poście z 06.11.2011 (N) 13:36 zestawiłeś ze sobą z jednej strony Visual Studio, a z drugiej Javę ze Swingiem, co jest bez sensu, bo nie można porównywać IDE z językiem/technologią. To tak, jakby chcieć porównać młotek z arytmetyką. Tylko tyle chciałem sprostować, bo takimi nieścisłościami można niechcący początkującemu namieszać w głowie.

Czego jeszcze nie rozumiesz i o czym właściwie piszesz?

P.S. Skoro napisałem “kilkudziesięciu”, to znaczy, że jest ich kilkadziesiąt. Zdaje się, że na JVM jest ich niewiele więcej.