Soll ich da MySQL nehmen?

Moartel

Erfahrenes Mitglied
Hallo Leute,
ich möchte gerne eine Wettkampfverwaltung für Schützenvereine schreiben. Als Sprche habe ich Java im Visier. Java, weil es Plattformunabhängig ist, und ich es halbwegs kann. Um die ganzen Daten (Name, Adresse, Verein, Alter, m/w, Disziplin, Mannschaft, Ergebnis, etc.) zu speichern brauche ich ein Datenbanksystem. Zuerst wollte ich ein eigenes entwickeln, habe es mir dann aber anders überlegt. Ich möchte das ganze jetzt über einen lokalen MySQL-Server realisieren.
Aber: Ist hier MySQL überhaupt zu empfehlen? Gibt es da Probleme mit lokalen MySQL-Servern? Und: kann ich die Dateien von der Datenbank ohne größeren Aufwand auf einen anderen Rechner übertragen (wenn da MySQL drauf ist nnatürlich)?
Ach ja, ein gutes Tut wäre auch nicht schlecht. Möglichst gleich noch eines über JDBC.
 
Daran habe ich auch schon gedacht

Ich habe mir auch schon überlegt das ganze mit PHP zu machen, aber PHP unter Windows ist ziemlich langsam (bei mir zumindest); außerdem bräuchte ich dann auf jedem Rechner, wo das Prog laufen soll einen kompletten Apache mit PHP. Ein bisschen aufwendig. Für die Verwendug auf der Vereinshomepage möchte ich einen Export-Assistenten schreiben, der das ganze Weboptimiert in eine Tabelle schreibt.
Trotzdem Danke für den Kommentar.
 
Öhm Moartel du willst das auf mehreren Rechnern laufen lassen?
Sind die im Netzwerk miteinander verbunden ?
Wenn ja brauchst du nur einen Webserver laufen lassen auf den die anderen per Network drauf zugreifen.

Sind die Rechner nicht im netzwerk miteinander verbunden frage ich mich wie sie an die Daten kommen wollen die du einmal eingibst.

Dann ist PHP auch unter Windows nicht so langsam das es bei den kleinen Projekten überhaupt ins Gewicht fällt.

Dann einen Export-Assistenten schreiben. ??
Schiess nicht mit Kanonen auf Spatzen :-) Das ist alles unnötig oder aber ich bin verwirrt :-)
 
Das ist ein wenig anders

Die Sache ist eigentlich ganz einfach: Das Programm sollte möglichst einfach sein. Erklär du bitte mal jemandem, der am Computer ncith so fit ist, er möge sich zuerst mal einen Apache für PHP und dann auch noch eine MySQL-Datenbank installieren. Dazu kommt eh noch das JRE. Das ist ein bisschen viel für den Normal-User.
Die Rechner sind nicht übers Netzwerk verbunden.
Der Export-Assisten ist eigentlich nur dafür da, um die Daten schnell ins Netz stellen zu können. Es ist ne ziemliche Arbeit ne Liste mit über 100 Leuten mit Name, Verein und Ergebnis und Platzierung FEHLERFREI irgendwann am Abend oder in der früh abzutippen? HTML-Export haben außerdem auch die kommerziellen Programme. Ich glaube nicht, das ich mit Kanonen auf Spatzen schieße, wenn ich versuche ein gutes und funktionsreiches Programm zu schreiben, dessen Daten man auch mit anderen Proggies lesen kann.
 
Nun das beantwortet immer noch nicht die Frage wie die Daten verteilen willst.

Wenn mehrere Rechner diese Daten bekommen sollen aber diese nicht übers Netzwerk verbunden sind ... woher sonst als über das Internet.
Und wenn über das Internet wozu dann extra Webserver usw auf den einzelnen PC´s installieren.
öhm verwirrt bin
 
Das hab ich doch nie gesagt.

Ich hab nie gesagt, dass mehrere Rechner gleichzeitig an die Daten kommen sollen. Es gibt einen Rechner auf dem das Programm läuft, der wertet alles aus und speichert das dann. Das mit dem MySQL-Server war nur eine Idee wie ich die Daten während der Arbeit ablegen kann. Ich habe mir jetzt mal die String-Funktionen von Java genauer angeschaut und bin auf eine andere Idee gekommen. Wenn ich jetzt einen String der Länge 80 byte (nur zum Beispiel) nehme und die ersten 15 byte für den Vornamen, die nächsten 15 für den Nachnamen, die nächsten 30 für den Verein, die nächsten 10 für die Klasse reserviere habe ich noch 10 byte für das Ergebnis (das reicht für die meisten Disziplinen aus). Da ich weiß, bei wieviel byte welcher Wert steht, kann ich z.B. den Verein aus dem String rausziehen, in dem ich einen SubString generiere der aus den Zeichen 31-60 des Strings besteht. Da nicht alle Vereinsnamen oder Personennamen gleich lang sind, die Namen aber trotzdem in mein Schema passen müssen fülle ich die fehlenden Zeichen einfach mit Leerzeichen auf. Die kann ich ja problemlos wieder entfernen wenn ich sie mal nicht brauche.
Ein weiterer Vorteil dieser Methode ist, dass ich die einzelnen Strings, die die Daten eines Schützen enthalten in einem Array speichern kann. Wenn ich die Daten in den Strings richtig anordne kann ich diese Array sogar mit einem Sortieralgorithmus der in Java enthalten ist sortieren. Das ist mit Sicherheit schneller, als wenn ich die Sortierfunktion selbst entwerfe.
Was hältst du von dieser Idee HolyFly?
 
Es gibt einen Rechner auf dem das Programm läuft, der wertet alles aus und speichert das dann.

Und genau deshalb versteh ich nicht wieso du meinst das jeder Rechner Apache & mysql installiert haben muss.

Mein Vorschlag ist folgender:
Du schreibst ein PHP-Script in dem du die Daten eingibst, baust auf deine HP einen internen Bereich (einfach durch .htacces sperren) vergibst Name + Pass an die die es zu interressieren hat und gut ist :)
Die "offiziellen" Daten kannste dann auf der HP im öffentlichem bereich anzeigen lassen und gut ist :)

Zu Java : habe keinen Plan von Java ... JavaScrip geht ja noch aber Java lass ich ersma die Finger von :-)

Aber Sotierfunktion ist mit mysql mehr als Gewährleistet. Sprich mit SQL kannst du rumsotieren wie immer du willst und dies in einer perfekten Geschwindigkeit.

Das meine ich mit Spatzen auf Kanonen schiessen (oder andersrum :-) ) es ist doch ein viel zu hoher Aufwand was du dir da aufbürden willst. Und ungerechtfertigt zu hoher Aufwand. Das geht mit nem ganz einfachen:
mySQL - Eingabe
mySQL - Ausgabe
Script!

Mehr brauchst du nicht ... keine allzugrosse Arbeit
 
Das ist ein gute Idee, aber

Du hast völlig Recht, HolyFly. Wenn ich das so in dem Stil durchziehen möchte wie du das sagst, wäre diese Lösung die beste. Da kann ich auch nichts mehr hinzufügen. Das wäre schätze ich mal ca. eine bis zwei Wochen harte Arbeit und dann hätte ich die Skripte für alle relevanten Disziplinen.

Das Problem bei deinem Ansatz liegt leider für fast jeden Verein im technischen und im finanziellen. Da ich davon ausgehe, dass du nicht weißt, wie so ein Wettkampf abläuft, werde ich dir das jetzt kurz erklären: Die meisten Meisterschaften erstrecken sich über den ganzen Tag. Am morgen kommen die ersten. Die starten dann meinetwegen um 9 Uhr. Um viertel nach 10 sind sie fertig. Dann geht um halb elf der zweite Durchgang los. Das geht dann immer so weiter bis um sechs oder sieben Uhr am Abend. Sowie die ersten Schützen eines Durchgangs fertig sind, werden die Scheiben zum auswerten gebracht. Der Auswerter nimmt da meistens seinen eingenen PC mit, oder er greift auf einen (meist vorhandenen aber selten leisttungsstarken) Vereins-PC zurück. Der Zeitraum in dem die Scheiben der Schützen eines Durchgangs ausgewertet werden erstreckt sich in der Regel auf eine gut halbe dis dreiviertel Stunde. Du müsstest also so lange eine Internetverbindung aufrecht erhalten. Das ist technisch gesehen natürlich kein Problem, aber bei 5-7 Durchgängen am Tag und den Ausdrucken der vollständigen Listen danach kommst du da leicht auf mehrere Stunden Internet. Das verursacht natürlich Kosten. Es ist für Vereine (leider) heute schon schwierig genug Mitarbeiter für solche Veranstaltungen zu bekommen, und dann sollen die auch noch die Internetgebühren zahlen? Einen Verein der das übernimmt wirst du nicht finden. Da werden zu viele der älteren Herrschaften im Vorstand und Ausschuss und dann erst recht in der Jahreshauptversammlung sperren, und behaupten, dass es früher auch alles ohne Computer und Internet funktioniert hat. Das nächste Problem ist schon der Zugang zum Internet. O.K., ein Modem lässt sich auftreiben, dann wird der Internetanschluss am Vereins-PC installiert, geht ja schnell, aber der Aufwand ist schon recht groß. Außerdem gibt es immer noch Vorenfanatiker, die sich u.U. weigern würden ihr Notebook an das Internet anzuschließen. Dann hast du ein tolles Programm, das du nicht richtig benutzen kannst.
Der nächste, und besonders problematische Grund, warum ich das nicht mit PHP machen will ist der, das ich nicht blind einem Server vertrauen will. Der Server von unserer Vereinsseite ist besonders bei PHP (noch Version 3!) ziemlich schnell. Aber stell dir vor, der Server, oder nur die Datenbank fällt aus. Dann kannst du einen ganzen Tag lang nicht auswerten. Das heißt, dass die Scheiben von über 150 Schützen, das sind ungefähr 3000 Stück einfach liegen bleiben.
Ein weiteres Argument ist, dass ich das Programm nicht für meinen Verein schreibe (die wissen gar nix davon), sondern es unter GPL freigeben werde. Auch andere Vereine (die vielleicht keine Homepage haben) sollen es ohne großartigen Support nutzen können.
Der wichtigste Punkt für Java ist aber der, dass ich eine Unterstützung für Auswertemaschinen einbauen will. Diese Maschinen werden an die serielle Schnittstelle des Rechners angeschlossen und geben die Ergebnisse des Schützen an das Programm weiter. Das kann man mit PHP so weit ich weiß nicht bewerkstelligen.

Du hast recht, dass ich mir einen ziemlich großen Aufwand zumute. Das weiß ich auch. Aber ich will einfach wissen, ob ich das ganze hinbringe. Ist sicher eine Sache, bei der ich was lernen kann. Das ist der Hauptgrund weswegen ich mir überhaupt große Arbeit mit einer HP oder diesem Programm mache.
Der andere ist Ärger. Ich habe im Vereinsheim eine Demo-Version von Target-Master (einer kommerziellen Auswertungssoftware) gefunden. Der Kerl, der das schreibt verlangt 400DM für das Prog und benutzt für die Datenbank Data Acces Components von Microsoft. Ich meine 400DM für ein Programm sind schon viel, aber dann nicht mal alles selber schreiben? Lieber ein paar Komonenten von Fremdfirmen nehmen, macht das ganze viel einfacher.

Sollte irgendjemand hier, zufällig ein wenig Java können (ich bin auch nicht so wahnsinnig gut) und in einem Schützenverein sein oder sich auch einfach so für die Entwicklung dieses Programmes interessieren kann er mich unter Moartel@gmx.de kontaktieren. Würde mich über Unterstützung sehr freuen.
 
Jau in dem Fall versteh ich das du es so nicht regeln kannst.

Das Hauptverständnisproblem war das es auf vielen Rechnern laufen soll die aber nicht miteinander vernetzt sind.
Ich ging davon aus das von diesen "vielen" Rechnern alle drauf zugreifen können sollen und nicht das einer einen Rechner mal mitbringt das nächste mal ein anderer :-)

Nun wie gesagt: Java tu ich mir nicht an :D und wünsch viel erfolg für dein Programm.

PS: Um die Ergebnisse zu speichern kann dennoch eine mysql datenbank hergenommen werden. Eine möglichkeit ist es das du nachdem dein Programm ausgewertet hat diese Ergebnisse in SQL-Code umwandelt welchen du dann auf Diskette in einer Datei speicherst und diese per Adminscript der Seite per PHP ausliest. Das speichert die Daten ohne Probleme in eine Online - SQL Datenbank und dementsprechend über PHP Script auch online abrufen kannst. Womit du deinen : "Support Assistenten" hättest. (eine möglichkeit zumindest :D)

Naja wenn ich dir bei Java schon nicht helfen kann hoffe ich das die idee anklang findet :-)
 
Zurück