Gedankenanstoß für Projekt [DB]

Wiesl

Lt. Junior Grade
Registriert
Feb. 2011
Beiträge
480
Hallo Leute!

Ich bräuchte einen Gedankenanstoß für ein Projekt.

Ausgangslage:
Es kommen die laufen bei mir und einer 2ten evtl. 3ten Nebenstelle einige hundert Anmeldungen zu versch. "Kursen" (Ort,Zeit, Datum) ein.
Bisher wurde alles per Hand in eine Liste eingetragen(je Kurs eine Liste) und ich habe sie dann zusammengefügt.

Zuerst wollte ich es per Excel-Sheet lösen und habe mir per VBA ein Eingabemodul gemacht. Dies funktioniert auch perfekt, leider nur an einem Arbeitsplatz. das Austauschen der einzelnen Datei-Versionen per Mail oder USB-Stick ist dann noch unpraktischer als ein Zettel ;)

Das ist ziemlich mühselig, und ich dachte mir, ich könnte das Ganze mit einer Datenbank im Netz vereinfachen, zu der jede Nebenstelle Zugang hat und mit einer Eingabemaske die Anmeldung eintippt, statt sie auf Papier zu bringen.

Nun habe ich aber ein paar Probleme:
Jede Nebenstelle (ohne große PC Kenntnisse) müsste die Datenbank auslesen können, nach einzelnen Kursen,Daten oder Namen sortieren können, ausdrucken können und v.a. bearbeiten (Kursänderung, Abmeldung, Verschieben in anderen Kurs usw.) können.
--> Bisher wird der Teilnehmer dann von einer Liste per Hand gestrichen und in eine andere Liste übertragen oder falls Listen schon getauscht mit Anruf an "Sammelstelle" ;)

Ich bin nicht ganz neu was Web-Programmierung angeht, habe bereits ein paar etwas einfachere Webseiten erstellt, nur bin ich bei MySql und den dazugehörigen Abfragen ziemlich neu.

Daher meine Frage: Ist dies überhaupt ohne Informatikstudium möglich, oder gibt es vielleicht sogar schon Bausteine, die ich dazu verwenden könnte?
Ich möchte den Arbeitsprozess erleichtern, falls dies nicht ohne riesigen Aufwand möglich ist, bleiben wir halt beim Blatt Papier ,)

Für Denkanstöße (auch ala: "Lass es bleiben") wäre ich sehr dankbar

Wiesl
 
Eigentlich gar keine blöde Idee und durchaus auch ohne Studium machbar :D

Ich habe ähnliches gerade mittels VB.net aus Access-Datenbank umgesetzt. (liegt dann über aller Personen auf einem Netzlaufwerk).
Wenn du einen Webserver zur verfügung hast, kannst du so etwas auch in PHP + mysql-DB umsetzen. :)

EDIT: Ein gute Einsteiger-Tutorial für PHP: http://www.php-quake.net/
 
Alternative Option:
- bau ein VPN, dass alle Außenstellen verbindet. Wir wollen doch keine sensiblen Daten von "außen" erreichbar haben, oder?
- Schnapp dir eine Maschine innerhalb des VPN (kann z.B. ne Raspberry PI sein) und spiel da n MySQL-Server drauf. Datenbank, Tabelle(n) & User aufsetzen, fertig.
- Jeder Client nimmt sich ein Desktop-Datenbankprogramm, das zu MySQL verbinden kann. Ich empfehle OpenOffice/LibreOffice DB. Da hat man direkt einen sehr guten MySQL-Connector dabei. Jetzt klickt man da seine Abfrage-Fenster und den ganzen Scheiß zusammen und hat ein nettes User-Interface für die MySQL-Datenbank.


Ich rate DRINGEND davon ab, eine Web-Lösung aufsetzen zu wollen.
Mach da einen kleinen Programmierfehler, und dein gesamtes Hosting ist Angriffen ausgeliefert. Deine vertraulichen Nutzerdaten landen dann irgendwo in Kasachstan. Und diese kleinen Programmierfehler? SQL Injection - Lücken sind die häufigsten und dabei auch schwerwiegendsten Lücken und kommen sogar bei Firmen vor, die es eigentlich besser wissen müssten (z.B. Sony. Vor paar Jahren beim großen PSN-Hack und vor ein paar Wochen noch einmal).
 
Ok, danke schonmal für die ersten Antworten.

1. Mit Access und VB.net habe ich keinerlei erfahrung, daher fällt das erstmal raus, trotzdem danke.

2. @Daaron, danke auch, genau solche Gedankengänge brauche ich, auch wenn außer Name und Telefonnummer keinerlei vertrauliche Daten gespeichert würden, sollten sie dennoch nicht in Kasachstan landen ,)
Kurz 2 Fragen dazu: wenn ich die DB und komplette Eingabe-Bearbeitungsseite hinter eine Log-In-Seite auf meiner HP stecke und keinen Link dazu hin anzeigen lasse, ist das wahrscheinlich zu blauäugig und unsicher, oder?
 
Wer schreibt denn die Log-In - Seite? Wie sicherst du ab, dass nur eingeloggte User TATSÄCHLICH auf die DB-Schnittstelle zugreifen können? Ist der Log-In nicht am Ende bereits eine Datenbank-Verbindung, bei der Username+PW gegen eine Tabelle abgeglichen werden? Welchen kryptografischen Schutz legst du auf die User-PWs? Wie richtest du SSH für die Seite ein, damit Username+PW nicht beim Login schon im Klartext übertragen werden?

Web-Programmierung ist immer eine Operation am offenen Herzen. Sobald du etwas aus dem Internet erreichbar machst, musst du es hieb- und stichfest absichern. Das heißt: Ein Laie sollte nie etwas anderes als reines HTML+CSS schreiben. Alles, was komplexere serverseitige Interaktion erfordert (PHP, Perl, Python, Ruby,...) sollte immer von Profis gemacht werden, einfach um keine monströsen Lücken zu reißen... und um im Falle einer Lücke jemanden zu haben, der für die Fehler haftet!
 
-So oder so würde ich für sowas VPN verwenden
-mal auf die Clients gucken, was die schon installiert haben, eventuell einfach eine Accessdatenbank aufsetzen und die den anderen per VPN zugänglich machen? Ist jetzt nicht das non-plus-ultra aber fix zusammengeklickert.
-eventuell gibt es sowas schon als OpenSource, schau dir das mal an: http://www.vfront.org/, ist jetzt nur schnell gegoogelt. Ich habe mal eine Inventarisierungslösung mit DadaBik gemacht, das ist aber glaube ich inzwischen kommerziell. Suchwort wäre hier dyncamic SQL frontend.
-ansonsten hast du die volle Entwicklung mit PHP und MySQL vor dir, für so ein bisschen Kursverwaltung ist das wahrscheinlich (abhängig davon wie schnell du programmierst) relativer Overkill.
 
mambokurt schrieb:
-mal auf die Clients gucken, was die schon installiert haben, eventuell einfach eine Accessdatenbank aufsetzen und die den anderen per VPN zugänglich machen? Ist jetzt nicht das non-plus-ultra aber fix zusammengeklickert.
Access ist ungeeignet. Da kann immer nur einer auf den Datenbestand zugreifen. Da muss schon ein richtiges RDBMS dahinter, nicht dieses nutzlose Access-Geraffel.... und die DB-Konnektoren von Access sind denen von Open/LibreOffice um Welten unterlegen.
 
mambokurt schrieb:
-eventuell gibt es sowas schon als OpenSource, schau dir das mal an: http://www.vfront.org/, ist jetzt nur schnell gegoogelt. Ich habe mal eine Inventarisierungslösung mit DadaBik gemacht, das ist aber glaube ich inzwischen kommerziell. Suchwort wäre hier dyncamic SQL frontend.
-ansonsten hast du die volle Entwicklung mit PHP und MySQL vor dir, für so ein bisschen Kursverwaltung ist das wahrscheinlich (abhängig davon wie schnell du programmierst) relativer Overkill.

Genau, das dachte ich mir, dass eine völlig von Grund auf erstellte PHP & MySql - Seite ein wenig zu viel des guten wäre ,)
Leider finde ich außer dem von die angegeben keine weitere kostenlose Lösung, also werde ich mir diese mal genauer ansehen.

falls noch jemand weitere Vorschläge einer "Kursverwaltung" hat, bitte immer her damit, ansonsten bleibts halt beim Stift und Papier ;)

Grüße
Wiesl
 
Daaron schrieb:
Access ist ungeeignet. Da kann immer nur einer auf den Datenbestand zugreifen.

Wer sagt das denn? O.o Access mag jetzt nicht das Non-Plus-Ultra sein aber ein paar Clients über VPN wird es gerade so nach handeln können. Falls du mit 'zugreifen' Locks meinst: für sowas würde ich eh kein Locking anmachen, die paar User werden sich quasi nie in die Quere kommen und die Wahrscheinlichkeit dass da irgendwas inkonsistent wird ist sehr viel geringer als bei der Zettelwirtschaft.

Wenn die Clients kein Access installiert haben ist das aber ohnehin eine sinnfreie Debatte, wenn doch würde ich aber Access nehmen ehe ich einen Webserver aufsetze und noch das Frontend einrichten muss.
Auf der anderen Seite würde ich dann aber auch eher einen Webserver + Frontend installieren als bei jedem Client 200MB Libre Office oder Access auf die Platte zu schmeißen.
Man muss da auch immer den Kosten/Nutzen Faktor im Auge haben, 90% Zielerreichung in 10% der Zeit ist für solche "Spaßprojekte" oft besser als dafür eine Woche vorm Rechner zu sitzen und einzurichten...
 
Also ich kenn das von Access noch so, dass nur ein User gleichzeitig auf die Files zugreifen kann, der Rest kriegt im günstigsten Falle eine für Bürokräfte etwas irritierende "nur lesend möglich" - Warnung.

Was du bei den 200MB Office nicht bedacht hast: Meist brauchst du eh ein Office-Paket, und da kann man auch gleich die gegebenen Mittel für das neue Problem direkt mit verwenden.
Außerdem ist der Ansatz "Office DB als Frontend, MySQL als Backend" noch schön erweiterbar. Du kannst jederzeit, auch im laufenden Betrieb, noch ein Web Frontend zu dem Kram dazu entwickeln.
 
Warum nicht einfach Google Docs, da kann man auch Spreadsheets gemeinsam mit anderen bearbeiten und sieht sofort wer was einträgt ..
 
lynxx schrieb:
Warum nicht einfach Google Docs, da kann man auch Spreadsheets gemeinsam mit anderen bearbeiten und sieht sofort wer was einträgt ..

Das wäre wahrscheinlich sogar, der cleverste Lösungsansatz ,)
Ich mache jeden Tag abends eine Sicherung und tada... ;)

2 kleine Fragen:
- Datenschutz ist dort gegeben, wenn ich es nur für 2 "User" freigebe?
- Kann ich dort eine "Userform" zur Eingabe der Datensätze erstellen? Ist dies unter "Formular" versteckt?

Danke im Vorraus
Wiesl
 
Zurück
Oben