Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Anfänger benötigt Hilfe bei Datenbankstruktur und Beziehungen

Begonnen von Ingo10, Februar 14, 2019, 14:07:26

⏪ vorheriges - nächstes ⏩

Ingo10

Hallo,
zunächst einmal liebe Grüße an alle von einem Neuling hier im Forum und einem Accessanfänger.
Ich benötige dringend Hilfe bei einem großen Projekt, dass ich zwar schon irgendwie am Laufen habe, aber so, dass ein Profi sich sicher die Haare raufen würde.
Ich möchte es aber jetzt besser machen.
Also kurz zur Erklärung. Es geht um eine Dokumentation für eine Labortätigkeit.
Dort habe ich verschiedene Proben, die mehrere Schritte zur Auswertung durchlaufen müssen. Sie müssen erfasst, extrahiert und detektiert werden.
Das habe ich schon realisiert.
Es gibt dabei verschiedene Extraktionsmethoden, genauso wie verschiedene Detektionsmethoden.
Das geht auch alles soweit ganz gut (für mich).
Das Problem ist, das ich zu jedem Test auch noch Kontrollen habe, die mit den Proben mitgeführt werden müssen. Diese werden wie die Proben behandelt, haben aber andere Namen und sind für jeden nachfolgenden Test unterschiedlich.
Also war mein Ansatz für alle Proben eine Tabelle, deren Namen (Probennummer) nicht als Duplikat vorkommen dürfen.
Dann habe ich Tabelle 1-20 für die Testkontrollen. Daten wie Patienten, aber ich benötige 20 Tabellen, damit ich Kontrolle 1,2 etc. in jeder Tabelle ebenfalls nur einmal habe.
Speichere ich jetzt die eindeutigen Namen stattdessen in einer Tabelle bleiben die Felder für die anderen Kontrollen im Datensatz leer. Das sollte man ja vermeiden. Speichere ich alles in einem Feld dann gibt es z.B.Kontrolle 1 mehrmals, was nicht sein darf.
Habe jetzt alles versucht und weiß nicht mehr weiter.
Füge Mal ein Bild an, wie es theoretisch aus meiner Sicht aussehen müsste, aber ich weiß, das es so nicht geht. Habe es auch schon mit 1:1 Beziehungen von ID-Extraktiin zurück zu einem Feld in tbl_Probe und Kontrolle 1 bis 20 versucht. Das geht auch nicht.
Wer kann mir helfen?
LG
PS: Sorry für den langen Text :'(

nurmikss

Hallo,

verstehe ich das richtig, dass es sich bei "Proben" und "Kontrollen" technisch um den gleichen Vorgang handelt, nur eben unterschiedlich benannt im Sinne von "Original" und "Wiederholung" ? Und dass Du in dem Bild vereinfachend nur zwei Kontrollen dargestellt hat, obwohl es eigentlich 20 sein müssen ?
Mir fällt auf, dass die Tabellenstruktur von "Proben" und "Kontrollen" identisch ist (bis auf Feld Extraktio_ID).

Wäre es denkbar, Proben und Kontrollen in einer Tabelle zusammenzufassen und in einem weiteren Feld "Art" zu kennzeichnen, ob es sich um "Probe" oder "Kontrolle" handelt ?
Um zu erkennen, welche Proben und Kontrollen zusammengehören, bräuchtest Du noch ein weiteres Feld, z.B. "Vorgangsnummer". Möglicherweise ist Dein Feld "Extraktion_ID" ein Kandidat dafür ?

Die Tabellenstruktur sähe dann so aus:
tbl_ProbenKontrollen:

  • ID
  • Extraktion_ID
  • Vorgangsnummer (vielleicht unnötig, wenn Extraktion_ID das hergibt)
  • Art
  • Herkunft
  • usw. ...
Wenn zu einem Vorgang (bestehend aus Probe und Kontrollen) neben der Vorgangsnummer noch weitere Merkmale (Datum, ...) zu speichern wären, sollte überlegt werden, für die Vorgänge eine weitere Tabelle anzulegen, die dann zwischen den Probanden und den Proben/Kontrollen vermittelt.
Ich verwende Microsoft Office Professional plus 2010

Ingo10

#2
Hallo nurmikss,

vielen Dank für Deine Antwort.  :)
Ich habe mir gestern nochmals ausführliche Gedanken gemacht und habe nun nach Tagen des Überlegens einen Ansatz gefunden, der vielversprechend erscheint.
Das ich da redundante Felder bei den Kontrollen und den Proben habe weiß ich schon. Das hatte ich gemacht, damit es nicht zu unübersichtlich wird, obwohl es das jetzt auch ist.
Falls es Dich interessiert nur zur Erklärung. Also es ist wirklich so, dass ich zum einen Proben habe, die untersucht werden müssen und zum anderen Kontrollen, die mitgeführt werden. Die Proben und die Kontrollen werden auf 5 verschiedenen Arten extrahiert und dann in ca. 20 verschiedenen Testsystemen detektiert. Das Ganze habe ich in Experimente aufgeteilt.
Also ein Experiment enthält eine beliebige Anzahl Proben und pro Experiment eine feste Anzahl Kontrollen. Als Beispiel gibt es eine positive und eine negative Kontrolle in Experiment 1 im Testsystem A. Den Proben gebe ich automatisch die Nummer des Experimentes als PositivKontrolle (1) und Negativkontrolle (1). Das Ganze mache ich automatisch per VBA, nachdem vorher alle Proben die zum Experiment gehören eingegeben wurden. Nach Abschluss des Experiments lasse ich um eins hochzählen, sodass dann Experiment 2 mit den entsprechenden Kontrollen (2) kommt. Kontrollen in anderen Testsystemen heißen nun teilweise gleich, NegativKontrolle (1) und Positivkontrolle (1) haben jedoch ein anderes Erfasssugsdatum und wurden teilweise von anderen Mitarbeitern bearbeitet. Daher kann ich aus meiner Sicht die Kontrollen nicht in eine Tabelle packen, da ich sicherstellen muss, dass zwischen Testsystemen der Name PositivKontrolle (1) doppelt mit verschiedenen Daten vorkommen kann. Innerhalb eines Experiments benötige ich aber für die Kontrollen Eindeutigkeit, damit nicht 10 x die Kontrolle (1) angelegt wird. Dann könnte ich nicht automatisch hochzählen lassen. Das Ganze muss dann noch für jedes Experiment und getrennt für jeden Test ausgedruckt werden. Und die Probennamen dürfen insgesamt ebenfalls nur einmal vorkommen. Dies alles kann ich mit einem Zusatzfeld nicht so richtig realisieren denke ich, aber vielleicht täusche ich mich.
Ich habe mich jetzt für eine andere Struktur entschieden (hier wieder einmal nur ein kleiner Ausschnitt für wenige Parameter) und die ersten Ergebnisse sehen sehr vielversprechend aus. Es geht bisher ohne irgendwelche Hilfsfelder und ich kann jede Menge Abfragen sparen und muss auch weniger Sonderfälle in VBA abfangen. Die Idee ist weg von der Probe oder der Kontrolle und das Ganze als eine "Erfassung" zu sehen, in die dann eine Probe oder aber eine Kontrolle einläuft. Dies scheint meine Probleme zu lösen, wobei ich aber noch am Testen bin.
Ich setze das Ganze daher erst einmal auf gelöst und nochmals Merci...