Andreas Borutta wrote:
Nehmen wir an, solche Tabellentypen wären ausserhalb von Base erstellt
worden.
Weil Du oben den "schreibenden Zugriff" erwähnst: man kann z.B.
innerhalb der Base-GUI eine solche Tabelle öffnen und einen Datensatz
unten einpflegen?
Ich spreche hier nicht von Formularen, sondern direkt von der Tabelle.
Wegen dieser
unterschiedlichen Tabellen taugt hier eben ein Allround-Werkzeug wie Base
nicht richtig, sondern es muss zur Erstellung dieser Tabellen besser auf eine
spezielle MySQL-Basis zurückgegangen werden.
Auch hier gehen sicher die Meinungen auseinander. Ich erstelle alle meine
Datenbanken mit phpMyAdmin - und bin damit immer gut gefahren.
OK. Dann lag ich also richtig mit meinem Verständnis des vorherigen
Postings.
Andreas
Du musst in der Tat zwischen dem Entwurf und der Benutzung
unterscheiden. Mit MySQLAdmin, phpAdmin, per Kommandozeile oder
Gedankenübertragung erstellst Du ein Grundgerüst, nenne es Skelett oder
Gefäß von mir aus. Analog wie man als Programmierer möglichst geeignete
Tools benötigt, um Quellcode (Text) in etwas maschinenlesbares zu
verwandeln. Den Kompilierer braucht der Endbenutzer nicht mehr.
Wenn das Skelett erstmal durch Relationen (Gelenke) verbunden ist, und
ein Benutzer seine Daten (Fleisch) hinzugefügt hat und die
Haut(Oberfläche) auch auf bestimmte Gegebenheiten zugeschnitten ist,
dann kann das Skelett ohne größere Operationen nicht verändert werden,
bestenfalls erweitert.
Eine fertige Datenbank enthält keinerlei Daten, sondern ein Gerüst aus
Abhängigkeiten und Gültigkeitsregeln, in welche dann gewünschte Daten
eingegeben werden können wärend ungültige, unzusammenhängende oder
unvollständige Daten zurückgewiesen werden.
Auf diese Weise wird ein Benutzer die Datenbank auch niemals speichern
müssen. Jeder gültige Datensatz (vereinfacht: Tabellenzeile) wird direkt
auf die Platte geschrieben. Eine Datenbank hat wesentlich mehr
Gemeinsamkeiten mit einem Dateisystem als mit einer Datei.
Ein Aspekt einer Datenbank ist, dass sie es verunmöglichen soll, dass Du
z.B. ein neues Musikstück ohne Komponisten eingibst. Die Zeile für das
Musikstück wird einfach nicht auf die Platte geschrieben, Fehlermeldung,
Basta. Dafür musst Du nichts programmieren. Das ist durch die
Tabelleneigenschaften so. Nicht eine einzige dieser Eigenschaften
würdest Du in einer Tabellenkalkulation wiederfinden, eine geänderte
Zeile wird dort auch nicht direkt auf die Platte geschrieben. Dort
würdest Du z.B. mit Formeln und Makros permanent überprüfen, ob alles da
ist =WENN(UND(A1>0;B1>0);A1/B1;"") und dergleichen Schwachsinn mehr.
Kann der Benutzer den Komponisten nicht im Formular auswählen, dann muss
er wohl erstmal die entsprechende Zeile für die Person in einer andere
Tabelle anlegen und dann das Stück hinzufügen. Wenn die Person kein
Geburtsdatum hat, Du aber das Datum als erforderlich festgelegt hast, um
nach Epochen klassifizieren und sortieren zu können, dann muss der
Benutzer wohl erstmal googeln bevor die Datenbank die neue
Komponistenzeile akzeptiert und dann ein neues Stück dieses Menschen
eingegeben werden kann.
Die Tabellen selbst und was in welcher Tabelle steht und wie das alles
zusammenhängt ist völlig unsichtbar für den Endbenutzer. Du würdest wohl
auch nicht die 2 Dutzend Relationen verstehen, die die Bestellung eines
Buches bei Amazon ausmachen, aber das Bestellen mittels des Formulars
klappt trotzdem. Wir wissen nicht, welche Datenbank und welche
Entwichlungswerkzeuge bei Amazon verwendet werden. Das Frontend wird als
HTML an Deinen Browser ausgeliefert.
Es ist völlich wumpe, womit Du Deine Relationen und Datentypen
festgelegt hast. Danach können Menschen mit derselben Datenbank mittels
HTML-Formular, Base-Formularen, und völlig anderen Programmen
interagieren. Du könntest sogar festlegen, wer von welcher Maschine aus
was lesen, was editieren, was löschen und was hinzufügen darf und dass
ohne Autentifizierung immer noch der Lesezugriff auf öffentliche
Datensätze über ein Web-Formular möglich ist.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]