Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Formular für geologische Datenbank

Begonnen von finki, Dezember 16, 2010, 16:33:41

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

und was ist mit outcr_lo??

ZitatGeht leider nicht, dass ich die Felder versetzte, da die Datenbank in dieser Struktur bleiben muss.

Warum?  Wer/Was verhindert das?


ZitatDie nicht Schlüsselfelder haben schon einen Sinn.
Welchen?  Deine Erklärung überzeugt (mich) so nicht   ;)



Zitat

Also du würdest alle Tabellen in Form von Unterformularen in ein Hauptformular der Tabelle OUTCR einfügen oder?

ja, das sagte ich doch... (mit der Bedingung, dass die 1:1-Beziehungen eliminiert werden.)

finki

#16
Ah ok, das habe ich übersehen.
Da gehts darum welche Art von Aufschluss gewählt wird.

OUTCR_GT heißt geotechnischer Aufschluss und OUTCR_LO ist ein Aufschluss in Lockermaterial.
Dabei muss Unterschieden werden, deshalb die eigenen Tabellen.

Ändern kann ich es nicht, weil es von vom Projekt / Arbeit so vorgegeben wird - meine Aufgabe ist die Formularerstellung.

Sonst gibts keine Möglichkeit die Tabellen in einem Formular zu verknüpfen??


Interessant ist dann nämlich auch die Ausgabe - der Bericht dafür sollte ungefähr das Layout des vorhin hochgeladenen Excel Formulars haben.


Noch zu den Schlüsselfeldern. Die sind angelegt, dass für jeden Datensatz nur die Zahlen 1 bis 5 angegeben werden müssen. Durch die Verknüpfung bekommt ja jeder Wert den zugehörigen Ausdruck zugeordnet.
Scheint mir auch ein wenig umständlich das ganze, ist halt leider so vorgegeben....  :(

DF6GL

Hallo,

wieder Kommentare:

Zitat
Dabei muss Unterschieden werden, deshalb die eigenen Tabellen.

Unterscheidung ist ok, aber dann mittels einem "Kategorie"feld (und Auswahl der Kategorie aus einer Stammdatentabelle--> tblAufschlussKategorien)

ZitatÄndern kann ich es nicht, weil es von vom Projekt / Arbeit so vorgegeben wird

Dann beschwer Dich bei der Projektleitung (überzeuge sie  ;)  )  und fordere die Änderung.

Zitat
der Bericht dafür sollte ungefähr das Layout des vorhin hochgeladenen Excel Formulars haben


Den hab ich nicht angesehen und spielt auch hier keine Rolle.    Ein Bericht (und damit das grundlegende Layout) ist Ergebnis (!) und  nicht eine Vorgabe für die Datenhaltung.


finki

Danke für deine Hilfe und Zeit!

Da das Projekt mehrere Firmen betrifft ist eine Änderung nicht möglich - leider!




finki

haben vl. oma oder database noch ein paar ideen für mich?

database

Hallo,

Ich kann mich da nur mit Franz (DF6GL) konform erklären.

Die Aussagekraft einer 1:1 Beziehung in einer Datenbanke ist in 99,9% der Fälle die, dass die Felder beider Tabellen auch in einer einzigen stehen könnten und auch sollten.
Die Verwendung von undefinierten Tabellenbeziehungen ist auszuschließen und Beziehungen über NICHT-Schlüsselfelder herzustellen nenne ich 'grob fahrlässig'.
Abgesehen davon, dass die referenzielle Integrität bei solchen Beziehungsvarianten nicht gewährleitet werden kann gibt es fast keine Möglichkeit zu garantieren, dass abgefragte Werte aus solchen Tabelenkonstrukten das erwartete richtige Ergebnis liefern.

Man kann natürlich versuchen den Inhalt in einem solchen Tabellensalat mit Hilfe von ausgefuchsten VBA Routinen einigermaßen gerade zu biegen - fürchte aber dass das ein Versuch bleiben wird, nicht zu reden mal vom Aufwand - wobei die Garantie für Richtigkeit immer noch nicht gegeben weden kann.

Das um und Auf einer datenbankbasierenden Applikation ist und bleibt sein Fundament - ein ordentlich geplantes und implementiertes Datenmodell!
Wobei es vollkommen Wurscht ist, welche Datenbank im Hintergrund eingesetzt wird.


finki

Hey danke für die Antwort!
Ich habe mir nun die Beziehungen noch genauer angeschaut und, so glaube ich zumindest, verstanden was du meinst.

Bei den Tabellen der 1:1 Beziehungen handelt es sich um Aufschlüsse.

Dabei gibt es drei Varianten.

Entweder normaler Aufschluss - dann kommen Daten in die Tabelle OUTCR + Tabelle OUTCR_GT und den damit verknüpften.
Geotechnischer Aufschluss: Wieder Daten in OUTCR + OUTCR_GT und Tabelle DISCO
Aufschluss im Lockergestein: Daten in Tabelle OUTCR + Tabelle OUTCR_LO
Also jeder Aufschluss muss in der Tabelle OUTCR vermerkt sein.

Kann ich dann diese drei wesentlichen Tabellen (OUTCR +OUTCR_GT +  OUTCR_LO) zu einer Tabelle zusammenfügen??

finki

Ich habe jetzt noch eine Erläuterung gefunden und stelle sie mal online.
Vielleicht hilft diese ja weiter:



[Anhang gelöscht durch Administrator]

finki

Mir ist da jetzt nochwas zu den 1:1 Beziehungen eingefallen:

Kann ich nicht auch zwei Formulare machen.
Eines für die Geotechnischen Aufschlüsse (OUTCR + OUTCR_GT) und eines für die Aufschlüsse im Lockersediment (OUTCR + OUTCR_LO)

Sollte doch auch funktionieren oder ??

database

Hallo,

habe mir mal deine Erläuterung durchgelesen, die ist ja ein datenbanktechnischer Widerspruch in sich, so wahr mir Codd helfe! (http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)#Merkspruch  ;D
Unter dem Punkt 'Eintragen von Outcrops ...' wird unter dem Unterpunkt '-TYP 1 ...' genau auf das verwiesen, was wir hier die ganze Zeit zu erklären versuchen. ::)
Dass danach aber dennoch einzelne Tabellen für LO und GT zu führen sind sind datenbanktechnischer Humbug (sorry - ist aber so)
Wenn nun die Felder dieser beiden Tabellen (OUTCR_LO und OUTCR_GT) in der Tabelle OUTCR stehen würden und über das Feld TYP angegeben wird um welche Art es sich handelt, wozu brauchst du dann nochmals zwei Tabellen um die Infos zu trennen, sie können ja sowieso NIE vermischt werden, da sie sich durch TYP unterscheiden - verstehst du?

Auch für die Infos in den anderen Tabellen (Tabelle DISCO z.B.) gilt die Beziehung zur Tabelle OUTCR (ID-OUTCR) und nicht zur ID der 1:1 verlinkten Tabellen!

ZitatKann ich nicht auch zwei Formulare machen
Obwohl es nicht zwingend notwendig ist - auch mit einem ordentlichem Datendesign ist es natürlich möglich Daten über ein oder mehrere Formulare zu erfassen.
Die Anzahl der verwendeten Formulare steht in keinem Verhältnis zu den Tabellen. Formulare sind nur der Rahmen, das Werkzeug um Daten einzugeben, Tabellen stellen das Fundament deiner Applikation dar.
Wenn dieses bröckelt und wackelt, was meinst du macht die Applikation dann, die auf diesem Fundament gebaut ist?  ;)

Natürlich hast du anch bestem Wissen und Gewissen (und dieser unseeligen Erläuterung) gehandelt, du solltest das Problem mit den Infos aus diesen Beiträgen wirklich bei deiner Projekleitung ansprechen, so wie Franz es vorgeschlagen hat.

HTH (ein wenig)

finki

Hey database!
Danke für die Aufklärung - jetzt habe auch ich es gecheckt!  :D

Soo um das ganze jetzt nochmal zusammenzufassen:

GT + LO in die Tabelle von OUTCR.

Mit Typ auswählen lassen welcher Aufschlusstyp gmeint ist.
Und mit den restlichen Tabellen ändere ich dann Beziehungen auf OUTCR.

Nur mit welchen Feldnamen in der neuen "Gesamttabelle" OUTCR verknüpfe ich dann die Beziehung? Mit dem neuen Typfeld??

oma

Hallo Finki,

da du mich direkt angesprochen hast, möchte ich auch meinen Kommentar zu deiner Geschichte abgeben.

Ich bekenne, ich kann kaum etwas erkennen aus den Bildern u. der "Datenbankberschreibung"
Ich kann nur etwas anfangen mit einer Tabellenbeschreibung  über Felder, Bedeutung, Schlüsselfelder und Beziehungen.

Nun wird es dir wahrscheinlich wenig nutzen, wenn wir permanent darauf hinweisen, dass das Datenmodell evt. falsch ist
Ob das wirklich so ist kann ich nicht so recht beurteilen, da ich mir die "Bilder" nicht weiter angesehen habe. Ich denke aber, das auch ein Tabellendesign mit einigen 1:1 Beziehungen durchaus denkbar ist (Gemäß Spezialisierung mit IS-A-Struktur in einem ERM-Modell)

Du hast nun mehrere Optionen:

1.   Formularbau mit "ungünstigen" Tabellenaufbau
2.   Rüchsprache zur möglichen Tabellenänderungen
3.   Eigene Änderungen der Tabellen (User "merken" nicht, wie die Tabellen aufgebaut sind)

Ich persönlich kann nur versuchen zu helfen, wenn ich die DB "sehe" bzw. eine Beschreibung in oben genannter Form bekomme.
Mir fehlt die Fantasie aus den den bisherigen Bildern und Angaben einen konstruktiven Vorschlag zu machen, obwohl ich dies gerne täte!!

Gruß Oma

nichts ist fertig!

finki

Danke für die Antwort Oma!

Ich bin jetzt dabei die Datenbank ein wenig umzubauen!
Ich werde jetzt die Tabellen OUTCR + OUTCR_GT + OUTCR_LO zu einer Tabelle zusammenfügen.

Die Verknüpfungen /Beziehungen mit den anderen Tabellen mach ich dann über das Feld ID von OUTCR.
In diesen anderen Tabellen muss ich dann noch das Feld ID_OUTCR_GT umändern, dass es sich auf das ID Feld von OUTCR bezieht oder???


finki

So jetzt habe ich die besagten Tabellen zusammengefügt.

In den unteren Tabellen, in denen die Parameter eingetragen werden die Felder ID_OUTCR_GT bzw. ID_OUTCR_LO auf ID_OUTCR umgeändert.

Nun möchte ich die gleichen Beziehungen wie zuvor wieder herstellen (1:n), jedoch lässt mich das Access diese Beziehung nicht herstellen:
Folgende Fehlermeldung kommt:
Microsoft Office Access kann diese Beziehung nicht herstellen, wenn referenzielle Inegrität erzwungen wird.

Ich lade noch zwei Bilder hoch, die euch die gewünsche Beziehung zeigen.

[Anhang gelöscht durch Administrator]

oma

Hallo finki,

- ob der Zusammenlegung der Tabellen richtig ist weiss ich nicht; wenn aber Franz u. Peter dies aus den bisherigen Beschreibungen erkenn, solltest du es so machen.

ZitatIn diesen anderen Tabellen muss ich dann noch das Feld ID_OUTCR_GT umändern, dass es sich auf das ID Feld von OUTCR bezieht oder???

ich vermute mal, dass es sich bei ID_OUTCR_GT um den Fremdschlüssel zu den Primärschlüssel in Tabelle OUTCR_GT handelt.
Dann musst du diese Wete als auch die Fremdschlüssel in den Detailtabellen zur Tabelle OUTCR_LO anpassen!

Das Zusammenfügen der Tabellen u. das Ändern der Fremdschlüssel in den Detailtabellen in den nunmehr neuen Primärschlüssel der zusammngefügten Tabellen ist keine leichte Nummer.

Du musst hierbei schrittweise u. sehr strukturiert vorgehen :D

Nochmal: ich würde es am besten finden, du stellst eine abgespeckte DB-Variante ins Forum

Gruß Oma

nichts ist fertig!