0

Hilfe!

Hallo zusammen,
ich würde gerne folgendes Problem lösen. Hat jemand einen Vorschlag?
Es sollen folgende Tabellen angelegt werden.

1) Tabelle "Daten" hat folgende Felder:
sample name, marker, size1, size2

Zu jedem "sample name" gibt es mehrere Einträge im Feld marker, size1 und size1, wobei für jedes sample sich die gleichen "marker" wiederholen, z.b. für die samples A, B, C

sample name      marker       size_R1       size_R2
A                            X                  1              7
A                            Y                  2              8
A                            Z                  3              9
B                            X                  4              10
B                            Y                  5              11
B                            Z                  6              12
C                            X                  13            16
C                            Y                  14            17
C                            Z                  15             18

Für jeden "marker" sollen jetzt entsprechende Tabellen in der Datenbank angelegt werden.

2) Tabelle "Marker X" mit folgenden Feldern:
sample name, size_R1, size_R2, size_P1, size_P2, size_P1/P2
Die Felder size_P1 und size_P2 sind f(x)-Berechnungsfelder aus size_R1 und size_R2 entsprechend. Das Feld size_P1/P2 ist ein f(x)-Berechnungsfeld aus size_P1 und size_P2. Gemäß der obigen Datentabelle, z.b.

sample name                 size_R1             size_R2       size_P1            size_P2      size_P1/P2
A                                          1                       7
B                                          4                      10
C                                          13                    16

3) Tabelle "Marker Y" mit folgenden Feldern:
(analog wie bei Tabelle "Marker X")
sample name                 size_R1             size_R2       size_P1            size_P2        size_P1/P2
A                                          2                        8
B                                          5                       11
C                                          14                     17

4) Tabelle "Marker Z" mit folgenden Feldern:
(analog wie bei Tabelle "Marker X")
sample name                 size_R1             size_R2       size_P1            size_P2       size_P1/P2
A                                          3                       9
B                                          6                       12
C                                          15                    18

Die Tabellen für die einzelnen Tabellen "MarkerX, Y, Z" ziehen die Daten aus der Tabelle "Daten".

5) Tabelle "Sample"
In der Tabelle "Sample" sollen nun die Daten aus den "Marker"-Tabellen teilweise wieder zusammengeführt werden. Die Tabelle enthält folgende Felder:
sample name           marker             size_P1            size_P2       size_P1/P2

Vielen Dank,
Bertram

30 Antworten

null
    • bbrenig
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Der Copytexter,

    also es gibt weiterhin drei Tabellen: Daten, Sample, Marker

    Tabelle Daten: In diese Tabelle werden csv-Daten importiert. Diese Tabelle hat die Felder Sample Name, Marker, Size_R1, Size_R2

    Tabelle Sample: In der Tabelle sind die Felder Sample Name, Size_ P1/P2

    Tabelle Marker hat die Untertabellen Marker_X, Marker_Y, Marker_Z etc: In jeder dieser Tabelle sind die Felder Sample Name, Size_R1, Size_R2, Size_P1, Size_P2, Size_P1/P2.

     

    In der Tabelle Sample ist jetzt das Skript per Button hinterlegt.

     

    Folgender workflow soll stattfinden:

    1) In Tabelle Daten wird die csv-Datei importiert. Dort sind dann mehrere Samples mit ihrem Sample Name und für jedes Sample wiederum mehrere Marker gelistet, z.B.

    Sample Name     Marker    Size_R1    Size_R2

    A                         X              23             12

    A                        Y               5                7

    A                        Z               56              89

    usw

    2) In Tabelle Sample wird nun in das Feld Sample Name der Name eines Samples eingetragen, z.B. A

    3) Jetzt wird das Button geklickt und das Skript ausgeführt. -> alle Daten für das Sample A aus der Tabelle Daten werden in die Tabelle Marker übertragen, dort laufen die Berechnungen für jeden Marker des Samples ab und die Berechnungen Size_P1/P2 für jeden Marker erscheinen in den entsprechenden Feldern in der Tabelle Sample.

     

    Dann wird der gleiche Vorgang für das Sample B gestartet usw.

     

    Ist das so verständlich geworden?

    Viele Grüße,

    Bertram

    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hm. Den ersten Teil bis einschließlich "1)" hatte ich verstanden und ja auch schon in meiner Beispiel-DB berücksichtigt. Aber bei den Punkten "2)" und "3)" stehe ich immer noch auf dem Schlauch.

     

    Ist es vielleicht so, dass das vorhandene Skript nicht ergänzt, sondern in seiner Funktion grundlegend geändert werden soll? Dass die importierten 'Daten' jetzt nicht mehr alle automatisch anhand der Marker, sondern manuell anhand des Sample-Names verarbeitet werden sollen?

     

    Da unter dem 'sample_name' aber mehrere Datensätze mit verschiedenen Markern existieren können (im Beispiel: 3 mit sample_name "A" und den Markern "X", "Y", und "Z"), müssten diese auch verschiedenen Marker-Tabellen zugeordnet werden. Das heißt, wenn man als 'sample_name' jetzt bspw. "A" eingeben und den Button betätigen würde, dann müssten den Beispieldaten zufolge insgesamt 3 Datensätze verarbeitet und jeweils 1 in die Tabellen Marker_X, -Y und -Z übertragen werden. Das geht zwar, aber nicht dynamisch, sondern nur mit Abfrage des Markers bei jedem betreffenden Datensatz. Oder vielleicht mit einer benutzerdefinierten Funktion.

     

    Aber daran will mich jetzt nicht auf gut Glück versuchen, da ich nicht weiß, ob ich das Ziel der Aktion überhaupt richtig verstanden habe. Eventuell wäre auch eine Tabelle für alle Marker mit verschiedenen Formeln je Marker effizienter. Für solche, das Datenmodell betreffende Entscheidungen bräuchte man aber mehr Informationen, z. B. auch die, wieviele verschiedene 'marker' und 'sample_names' es überhaupt gibt und ob die sich auch mal ändern können oder immer gleich bleiben.

    • bbrenig
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Der Copytexter,

    1) in Tabelle "Daten" werden kontinuierlich immer wieder neue csv-Datensätze importiert. Diese Datensätze haben immer wieder neue "Sample Names". Zu jedem "Sample Name" gehören immer die gleichen Marker (insgesamt 12), aber mit unterschiedlichen "size_R1" und "size_R2" Werten.

    2) in Tabelle "Marker" werden nun die 12 Marker auf 12 Untertabellen verteilt (-> Marker_X, Marker_Y, Marker_Z etc) und in den Feldern "size_P1" und "size_P2" und "size_P1/P2" für jeden Marker spezielle Berechnungen durchgeführt.

    3) in Tabelle "Sample" werden die berechneten "size_P1/P2"-Werte wieder zu den einzelnen "Sample Names" zugeordnet, so dass für jedes Sample die für dieses Sample spezifischen "size_P1/P2"-Werte der entsprechenden 12 Marker gelistet werden.

     

    Im Workflow möchte ich aber nach dem Import eines csv-Datensatzes nur spezielle Samples durch das Skript aufrufen und zwar in dem ich in das Feld "sample_name" in der Tabelle "Sample" einen "sample_name" eintrage, und dann im Skript des Buttons geprüft wird, wenn der "sample_name" in der Tabelle "Daten" enthalten ist, dann übertrage die zu diesem Sample gehörenden 12 Marker "size_R1" und "size_R2" in die zugehörigen Untertabellen in der Tabelle "Marker". In den Untertabellen laufen die Berechnungen für "size_P1" und "size_P2" und "size_P1/P2". Dananch soll das Skript die berechneten "size_P1/P2"-Werte für jeden Marker in Tabelle "Sample" dem entsprechenden Sample wieder zuordnen und listen.

    Viele Grüße,

    Bertram

    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Bertram, die Hintergrund-Infos zu den Sample-Names und Markern war für das Verständnis auf jeden Fall hilfreich. Weil es am Ende schneller geht, als lange Erklärungen zu schreiben, habe ich die Datenbank mal so der Aufgabenstellung angepasst, wie ich sie verstanden habe.

     

    Die Eingabe des 'sample_name' erfolgt allerdings nicht in der Tabelle 'Sample', sondern im Dashboard. Denn um eine Eingabe vornehmen zu können, müsste ja sonst ein Datensatz angelegt werden (oder eine extra Formular-Tabelle). Technisch gesehen ist es aber egal. Die andere Schaltfläche zur automatischen Verarbeitung nach 'marker' habe ich auch nich dringelassen.

     

    Die aktualisierte Version der Datenbank liegt hier:

    https://www.dropbox.com/s/79sdo6m133voisn/Daten_Bertram.ninox?dl=0

    • bbrenig
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Der Copytexter,

    soweit funktioniert das scheinbar sehr gut. Ich probiere das jetzt an mehreren Datensätze einmal aus, ob die Eingabe des sample_name im Dashbord das richtige Resultat liefert. Wahrscheinlich melde ich mich dann wieder.

    Vielen Dank, Bertram

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 30Antworten
  • 1553Ansichten