Supportnet / Forum / Datenbanken
Die Zehn Gebote
Frage
Eines der Gebote besagt: "...du sollst keine "Nachschlagefelder" verwenden, denn solches ist von Übel."
[http://www.dbwiki.de/wiki.php?title=Access_Anf%E4nger:_Die_Zehn_Gebote]
Ich verwende nun viele Nachschlagefelder (in Form von Kominationsfelder baue ich sie gleich in die Tabellen ein; so kann man beim Ausfüllen eines Formularfeldes zwischen den Tabelleninhalten aus der nachgeschlagenen Tabelle auswählen)
Meine Frage jetzt: Warum soll dies von Übel sein? Bisher hatte ich keine Probleme. Was kommt dann auf mich in Zukunft zu?
Antwort 1 von el_gomero
Hi,
eines der Gebote sagt auch, daß du in Formularen erfassen sollst und die Tabellen den Anwender nichts angehen. Die Probleme tauchen auf, wenn du versuchst auf die ID oder sonstige Felder der Tabelle zugreifen willst. Ein sauberer Programmierstil verzichtet auf Nachschlagefelder ( denn solche sind von Übel ;) ).
ciao
Jürgen
eines der Gebote sagt auch, daß du in Formularen erfassen sollst und die Tabellen den Anwender nichts angehen. Die Probleme tauchen auf, wenn du versuchst auf die ID oder sonstige Felder der Tabelle zugreifen willst. Ein sauberer Programmierstil verzichtet auf Nachschlagefelder ( denn solche sind von Übel ;) ).
ciao
Jürgen
Antwort 2 von oliverV
Hallo Tomczek,
dürfte die Reaktion auf meine Bemerkung hier sein.
Ich bin natürlich davon ausgegangen, das der Benutzer die Daten in Formularen und nicht in Tabellen erfasst; denn das wäre sonst ein noch größeres Übel.
Probleme wirst du bekommen, wenn du dich auf ein solches Feld beziehen willst und die getätigte Auswahl als Kriterium auslesen willst (z.B. um ein Formular/Bericht zu öffnen und diese Daten einzuschränken).
Du bist dadurch unflexibel, denn du wirst später „ähnliche“ Kombifelder nutzen.
z.B. in einem Bestellformular hast du ein Nachschlagefeld „Artikel“ (ID gebundene Spalte / Artikelbezeichnung sichtbare Spalte), als 3. (unsichtbare) Spalte willst du aber noch die Mengeneinheit mitführen auf die du dich in einem weiteren ungebunden Formularfeld mit Column(2) beziehst.
Versuche mal die Datenherkunft eines geöffneten Formulars zu verändern, mit solchen Nachschlagefeldern...
Du bist bei wachsenden Bedürfnissen an die DB gezwungen Tabellennachschlagefelder die du in Formularen verwendest durch „echte“ Kombinationsfelder zu ersetzen.
Dann wird’s aber richtig eklig, denn dann hast du ein Teil Nachschlagefelder und ein Teil Kombifelder, was du auf den ersten Blick aber nicht erkennst.
Du baust dir damit unnötige Stolpersteine.
Fazit – speichere deine Fremdschlüssel wirklich als Zahl in den Tabellen, erst in den Formularen verwende Kombinationsfelder, du ersparst dir dadurch viele unnötige Probleme.
Gruß
Oliver
dürfte die Reaktion auf meine Bemerkung hier sein.
Ich bin natürlich davon ausgegangen, das der Benutzer die Daten in Formularen und nicht in Tabellen erfasst; denn das wäre sonst ein noch größeres Übel.
Probleme wirst du bekommen, wenn du dich auf ein solches Feld beziehen willst und die getätigte Auswahl als Kriterium auslesen willst (z.B. um ein Formular/Bericht zu öffnen und diese Daten einzuschränken).
Du bist dadurch unflexibel, denn du wirst später „ähnliche“ Kombifelder nutzen.
z.B. in einem Bestellformular hast du ein Nachschlagefeld „Artikel“ (ID gebundene Spalte / Artikelbezeichnung sichtbare Spalte), als 3. (unsichtbare) Spalte willst du aber noch die Mengeneinheit mitführen auf die du dich in einem weiteren ungebunden Formularfeld mit Column(2) beziehst.
Versuche mal die Datenherkunft eines geöffneten Formulars zu verändern, mit solchen Nachschlagefeldern...
Du bist bei wachsenden Bedürfnissen an die DB gezwungen Tabellennachschlagefelder die du in Formularen verwendest durch „echte“ Kombinationsfelder zu ersetzen.
Dann wird’s aber richtig eklig, denn dann hast du ein Teil Nachschlagefelder und ein Teil Kombifelder, was du auf den ersten Blick aber nicht erkennst.
Du baust dir damit unnötige Stolpersteine.
Fazit – speichere deine Fremdschlüssel wirklich als Zahl in den Tabellen, erst in den Formularen verwende Kombinationsfelder, du ersparst dir dadurch viele unnötige Probleme.
Gruß
Oliver
Antwort 3 von mapet
Hallo
Ich will hier nur die Aussage von Oliver unterstützen, musste meine erste DB völlig umbauen, damit es einigermassen funktionierte.
Die "zehn Gebote" scheinen für den Laien nicht immer nachvollziehbar aber wer sie einhält erspart sich Aerger.
Ich habe Sie zu spät gefunden!
mapet
Ich will hier nur die Aussage von Oliver unterstützen, musste meine erste DB völlig umbauen, damit es einigermassen funktionierte.
Die "zehn Gebote" scheinen für den Laien nicht immer nachvollziehbar aber wer sie einhält erspart sich Aerger.
Ich habe Sie zu spät gefunden!
mapet

