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]

Antwort per Email an