Interaktive Datenbank - wie denn?

MahatmaGlück

Aktives Mitglied
Thread Starter
Dabei seit
21.10.2003
Beiträge
5.834
Reaktionspunkte
62
Tach zusammen :) [Vorsicht langer Text]

Ich stehe vor einem grundsätzlichen Problem - grobe Umschreibung: Ich möchte eine browserbasierte interaktive Datenbank erstellen und weiß nicht wie (in welcher Sprache bzw. welcher Kombination von Sprachen), bzw wo ich überhaupt anfangen soll.

Konkreter: Es soll sich um eine Datenbank über chemische Substanzen handeln, die je nach Bedarf verschiedene Funktionen erfüllen soll, z.B.:
  • Anzeige von Lagerbestend und bedingungen für möglichst alle Substanzen (oder auch in Kategorien) in Tabellenform. Man könne dabei vielleicht auch eine Abhängigkeit vom Datum einfügen, wenn ein Verfallsdatum überschritten wird (z.B. roter Rahmen --> Substanz muss neu bestellt werden)
  • Anzeige in Tabellenform, welche Substanzen für bestimmte Kunden oder bestimmte Proben (Gemüse, Getreide, Bodenproben etc.) relevant sind und gemessen werden sollen
  • Anzeige von gesammelten Substanzinformationen: Alles was dafür im Laufe der Zeit gesammelt wurde. Lagerbestand, chemische Eigenschaften, Struktur (gif Datei), Analytische Daten und Hinterlegung von pdfs über Analysenergebnisse,... halt alles.
  • Erstellung von Analytischen Daten (in Tabellenform) für Analysemethoden. Z.B. Große Liste mit Substanzen und daneben Checkboxen. Aus den angewählten Substanzen wird eine Tabelle wie hier erstellt, die man per copy+paste in ein anderes Programm einfügen kann)
  • Bestehende Datensätze zu Substanzen sollen erweitert (editiert) werden können, neue Datensätze sollen hinzugefügt werden können
Ist vielleicht nicht schwierig zu erraten, dass das Ganze mal meinen Berufsalltag erleichtern soll. Bisher machen wir das auf Arbeit mit Excel, aber ich würde aus verschiedenen Gründen gern von diesem Format loskommen. Unten hängen mal zwei Beispieltabellen dran, wie das z.Zt. aussieht.

Ich habe eigentlich eine relativ konkrete Vorstellung, wie das Ganze am Ende mal aussehen soll und auch noch ein Menge mehr Ideen, wie man es erweitern könnte (ganz am Ende steht mal eine Art LIMS)- aber ich weiß nicht wo ich anfangen soll. Meine HTML Kenntnisse sind von 1997 und das was ich in den letzten Tagen dazu gelesen habe beantwortet mir meine Fragen nicht.

XML? mySQL? welches Datenbankformat? Mit welcher Sprache bleibe ich später offen für Erweiterungen? Gibt es Editoren, die sowas können?
Ich vermeide jetzt lieber, viele Schlagworte hier hinzuschreiben und hoffe, dass mich einer in die richtige Richtung schubst. Bin auch sehr offen für Links, die meine Fragen beantworten. Ich kenne die Seiten von w3schools.com - die waren zwar hilfreich, aber wahrscheinlich nicht Noob tauglich genug ;).


Besten Dank schon mal!
 

Anhänge

  • 4Testsubstanzen-Info.jpg
    4Testsubstanzen-Info.jpg
    20,7 KB · Aufrufe: 97
  • 4Testsubstanzen_MS-Daten.jpg
    4Testsubstanzen_MS-Daten.jpg
    20,9 KB · Aufrufe: 115
Tja, da hast Du Dir etwas vorgenommen…

So etwas zu realisieren ist zwar nicht super-kompliziert; aber Du hast nach eigener Aussage ja kaum Vorkenntnisse. Du müsstest Dich also erstmal in die fraglichen Sprachen einarbeiten.

Mein Vorschlag:
Benutze MySQL als Datenbank und PHP als Scriptsprache, mit welcher Du die Daten aus der DB auslesen und für die Darstellung aufbereiten kannst.
PHP ist auf Deinem Mac schon vorhanden, MySQL lässt sich einfach nachrüsten. Zudem ist PHP – meiner Meinung nach – vergleichsweise einfach zu erlernen und Hilfe dazu findest Du an jeder Ecke im Web.

XML ist zwar insofern zukunftssicherer, als dass Du XML-Dateien zur Not auch noch mit einem Texteditor öffnen kannst – allerdings dürfte auch MySQL kaum innerhalb weniger Jahre »vom Markt verschwinden« – und wenn das mal passieren sollte, wird sich das lange vorher ankündigen; so dass dann immer noch Zeit genug ist, die Daten in ein anderes Format zu bringen.
Vorteil von MySQL ist meiner Meinung der scripttechnisch einfachere Zugriff auf die Daten, aaaaber: Das kann auch an meiner Gewohnheit liegen; ich musste zugegebenermaßen noch nie auf größere Datenbestände im XML-Format zugreifen.

Wenn Du jetzt erst mit PHP anfängst, wirst Du die Scripte vermutlich erstmal nicht optimal schreiben – wie in eigentlich allen Bereichen kann man sich echtes Fachwissen eben nicht anlesen, sondern nur durch Erfahrung lernen. Das ist aber nicht so schlimm, im Laufe der Zeit kannst Du die Scripte ja immer weiter verbessern.
Was meiner Meinung am Anfang wichtiger ist: Dass die Datenbanken vernünftig aufgebaut werden – wieviele und welche Tabellen legst Du an, wie werden diese strukturiert… sprich: Wie verteilst Du die zu speichernden Daten am besten? Natürlich kann man auch Datenbanken im Nachhinein ändern; aber das ist natürlich aufwendig und erfordert dann stets auch eine gleichzeitige Änderung der Scripte. Mein Rat lautet daher: Such Dir für den Aufbau der Datenbanken Hilfe von jemandem, der sich richtig gut damit auskennt.

Was das Lernen angeht:
Die wichtigste Informationsquelle für PHP ist natürlich php.net. Das dortige Manual ist m.M.n. aber eher Nachschlagewerk als Tutorial (und vor allem soweit wie möglich immer im englischen Original zu konsultieren – die deutsche Übersetzung hinkt gelegentlich gewaltig hinterher). Ein oft empfohlenes, deutsches Tutorial findest Du auf tut.php-quake.net.
Für MySQL ist mir kein gutes Tutorial im Web bekannt, gibt es aber sicher auch.

Und natürlich gibt auch der Büchermarkt einiges her; da kann ich jetzt aber keine konkrete Empfehlung aussprechen (meine Bücher sind alle schon ein paar Jahre alt und beziehen sich auf veraltete PHP-/MySQL-Versionen).
 
* verschoben da die DB hier nur Teil einer Gesamtapplikation ist *
 
Atarimaster, danke für die Antwort.

Da mir die MySQL / PHP Variante auch schon von anderer Seite vorgeschlagen wurde, habe ich mir ein Buch zur Einarbeitung gekauft und arbeite mich nun erstmal durch.

Erste Frage taucht schon bei der Installation auf (iMac, OS X 10.5.5) - ich habe mir das MySQL 5.1 Paket runtergeladen:

Warum kann ich den MySQL Monitor mit dem Befehl "/usr/local/mysql/bin/mysql" starten, aber nicht, wenn ich mich mit cd bis ins entsprechende Verzeichnis vorhangele und einfach "mysql" eingebe?

iMac-Jo:bin *** $ mysql
-bash: mysql: command not found
 
Zuletzt bearbeitet:
Ich hätte das ganze in Ruby on Rails realisiert. Da macht die Programmierung mehr Spaß als mit PHP.
 
Warum kann ich den MySQL Monitor mit dem Befehl "/usr/local/mysql/bin/mysql" starten, aber nicht, wenn ich mich mit cd bis ins entsprechende Verzeichnis vorhangele und einfach "mysql" eingebe?

Puuh, da kann ich Dir leider nicht weiterhelfen:
Ich habe mir damals das MySQL-Paket direkt von mysql.com runtergeladen und installiert; seitdem habe ich in den Systemeinstellungen ein Panel, mit dem ich den MySQL-Server starten und stoppen kann, s. Anhang.

(Oder habe ich dafür doch noch irgendwas anderes installiert? Ich glaube nicht, aber ist schon eine Weile her, deshalb will ich nicht drauf wetten.)

Ansonsten könntest Du Dir natürlich auch ein Komplettpaket wie MAMP installieren; das finde ich zwar nicht unbedingt nötig, aber es erleichtert halt auch ein paar Sachen.
 

Anhänge

  • Bild 1.png
    Bild 1.png
    57,5 KB · Aufrufe: 82
Ja, das Startup Tool habe ich auch installiert, aber ich habe halt versucht, bei der Installation nach Anleitung vorzugehen.
Die Antwort ist mittlerweile aber auch hinfällig, da ich der bashrc einen PATH Eintrag zugefügt habe - jetzt gehts :)

Ist spannend, das ... :D

Ich hätte das ganze in Ruby on Rails realisiert. Da macht die Programmierung mehr Spaß als mit PHP.
Danke für die Anmerkung - ich sehe es mir mal an, sobald ich mir in der Richtung Grundlagen angeeignet habe ;)
 
Du hättest ./mysql eingeben müssen.
 
Um die Verwirrung komplett zu machen:

- Modelliere dein Datenbankdesign in UML
- Lasse die Klassen generieren
- Benutze einen objekt-relationalen Mapper (ORM), welcher dir aus diesen Klassen dein Datenbankschema generiert
- Und benutze ein Web-Framework deiner deiner Wahl als Kontroll- und Darstellungsschicht
 
Ich als PHP-Coder würde einem Einsteiger eher Ruby empfehlen. Nach dem, was ich davon gelesen habe, ist es "besser". Ich bin allerdings zu alt und zu gut in PHP, als dass ich mich neu orientieren würde.
 
Zurück
Oben Unten