collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 55
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14037
  • stats Beiträge insgesamt: 67217
  • stats Themen insgesamt: 9066
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Reihenfolge von Datensätzen, wie lösen?  (Gelesen 112 mal)

Offline Micharius

  • Access-User
  • *
  • Beiträge: 78
Reihenfolge von Datensätzen, wie lösen?
« am: September 11, 2018, 20:58:09 »
Hallo zusammen

Bin mit einem neuen Projekt gestartet (worden) und am Erstellen eines Datenmodells. Unter anderem gibt es eine Tabelle tblArtikel und eine Tabelle tblArbeitspositionen. Die Datensätze von tblArbeitspositionen sollen über eine Zuordnungstabelle den Artikeln zugeordnet werden können. Die Reihenfolge der zugeordneten Datensätzen soll jedoch nicht zufällig sein, sondern z.B. Projekt Kick-Off, Implementierung, Dokumentation, Abnahme, Projektabschluss. Erfasse ich alle Datensätze schön der Reihe nach, habe ich diese natürlich schön nacheinander. Doch wenn ich mal was einfügen muss, wird es schwieriger.

Kurz gefragt: Ist es eine gute Idee, jedem Datensatz eine zusätzliche Nummer zu vergeben, und jeweils nach dieser zu sortieren? Wenn diese 3- oder 4-stellig sind, könnte man noch "Luft" dazwischen lassen, falls mal was geändert wird. Oder macht man dies in der Praxis ganz anders?

Ich hoffe, den Sachverhalt einigermassen verständlich geschildert zu haben, und würde mich über Tipps freuen.

Beste Grüsse

Micharius
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7375
Re: Reihenfolge von Datensätzen, wie lösen?
« Antwort #1 am: September 11, 2018, 22:11:50 »
Hallo,
Zitat
Projekt Kick-Off, Implementierung, Dokumentation, Abnahme, Projektabschluss.
dafür sollte es eine Tabelle geben mit einem estra Primärschlüssel. Den kannst Du als Zahl (z.B.in 100er Schritten) anlegen.
Für einen Eintrag dazwischen nimmts Du dann den entsprechenden Zwischenwert.
Die Reihenfolge der Erfassung spielt dann keine Rolle. Im Formular wird nach diesem (Sortier) Primärschlüssel sortiert. Dieser muss nicht zu sehen sein.
Gruß
Klaus
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1294
Re: Reihenfolge von Datensätzen, wie lösen?
« Antwort #2 am: September 12, 2018, 04:44:44 »
Eine Sortierung, egal ob numerisch oder alphanumerisch über ein oder mehrere Felder bildet keine Beziehung der Elemente untereinander ab, sondern ist als lose Vereinbarung zu interpretieren.

Vorteil: die flache Struktur lässt sich in Access gut abfragen. Unkompliziertes Einfügen von Elementen in die Struktur durch anpassung des oder der Sortierfelder.

Nachteil: es müssen immer alle Elemente im Speicher sortiert vorliegen, um auf Vorgänger, Nachfolger, Oberelement etc. Bezug nehmen zu können. Es existieren keine echten Beziehungen zwischen den Elementen. Sortierfelder müssen bei Strukturänderung gewartet werden.


Eine Struktur, wie sie zum Beispiel im DOM eines XML-Dokuments vorliegt, hat klare feste Beziehungen. Ein Element besitzt ein Oberelement (ist Null bei einem Wurzelelement) und kann auf gleicher Ebene genau einen Vorgänger und einen Nachfolger, wie bei einer doppelt verknüpften Liste, haben. (Lässt man das Oberelement weg, hat man nur eine doppelt verknüpfte Liste vorliegen, was vielleicht Deiner Anforderung näher kommt.)

Vorteil: Elemente sind durch echte Beziehungen verknüpft, von einem Element ausgehend sind Oberelement, sowie Nachbarelemente immer bekannt (bedarf keiner Abfrage), Elemente der gleichen und untergeordneten Ebene lassen sich leicht ermitteln ohne alle Elemente im Speicher halten zu müssen; Unterelemente, sowie erstes als auch letztes Element einer Ebene sind leicht einzupflegen; es können Teile der Objekthierarchie mit relativ wenig Aufwand komplett verschoben verden.

Nachteil: Höherer Verwaltungsaufwand; tiefer verschachtelte Elemente müssen prozedural durch rekursiven Aufruf ermittelt werden, weil die SQL-Implementation in Access zu antik dafür ist; zur Darstellung der Struktur wird man vermutlich ein Treeview-Steuerelement (ActiveX) verwenden (es sei denn, man beschränkt sich auf Elemente einer Ebene); das Einfügen und Löschen von Elementen in der Mitte einer Ebene gestaltet sich komplexer, weil auch Nachbarelemente bearbeitet werden müssen.

Andere Möglichkeiten Objekthierarchien abzubilden, läge in der Verwendung von Nested Sets, die überwiegend einfach abzufragen sind, aber relativ viel Aufwand beim Bearbeiten benötigen.
Grüße von der (⌒▽⌒)
 
Folgende Mitglieder bedankten sich: PhilS

Offline Micharius

  • Access-User
  • *
  • Beiträge: 78
Re: Reihenfolge von Datensätzen, wie lösen?
« Antwort #3 am: September 12, 2018, 07:34:50 »
Vielen Dank für die Inputs - ich lese mich gerne mal in die Thematik ein!
 

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 357
    • Tipps zu Access, VBA, SQL und Co.
Re: Reihenfolge von Datensätzen, wie lösen?
« Antwort #4 am: September 12, 2018, 08:52:23 »
Erfasse ich alle Datensätze schön der Reihe nach, habe ich diese natürlich schön nacheinander.
Dies ist eine weit verbreitete Annahme. Dennoch es nur ein Mythos.
Du kannst dich niemals auf eine automatische Sortierung der Datensätze verlassen, weder nach der Reihenfolge der Eingabe, noch nach dem Primärschlüssel.

Ist es eine gute Idee, jedem Datensatz eine zusätzliche Nummer zu vergeben, und jeweils nach dieser zu sortieren?
Ja, genau so würde ich das auch machen. Ich verwende für solche reinen Sortier-Felder gern einen Fließkommadatentyp, dann kann man bei bedarf auch durch Verwendung von Nachkommastellen immer noch einen zusätzlichen Wert dazwischen quetschen.
Neues Access 2019 Feature angekündigt: Modern Charts
 
Folgende Mitglieder bedankten sich: Micharius

Offline Micharius

  • Access-User
  • *
  • Beiträge: 78
Re: Reihenfolge von Datensätzen, wie lösen?
« Antwort #5 am: September 12, 2018, 13:19:48 »
Auch danke @PhilS, das ist ein guter Input mit dem Fliesskommadatentyp!

Mein Statement
Zitat
Erfasse ich alle Datensätze schön der Reihe nach, habe ich diese natürlich schön nacheinander.

habe ich so gemeint, dass ich ja jederzeit nach dem Primärschlüssel sortieren kann, und zumindest so eine nicht-nummerische und nicht-alphabetische Reihenfolge habe, die zumindest in der Theorie die Reihenfolge der Eingabe repräsentiert . Das dies aber auf lange Sicht nicht so funktionieren wird, leuchtet mir ein....

 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1862
Re: Reihenfolge von Datensätzen, wie lösen?
« Antwort #6 am: September 12, 2018, 16:23:49 »
Hallo Micharius,
Hier findest du eine sehr gute Erklärung zu Sortierung von Tabellen
http://www.office-loesung.de/p/viewtopic.php?f=167&t=777439
(der letzte Post im Thread ist der gemeinte)
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7375
Re: Reihenfolge von Datensätzen, wie lösen?
« Antwort #7 am: September 12, 2018, 18:16:13 »
Hallo,
Lies noch mal meinen Beitrag in #1 (1.Antwort).
Ich würde auf keinen Fall die Sortierzahl in der Zuordnungstabelle speichern. Dann musst Du die Zahl dort bei jedem Datensatz angeben.
Da ich aber annheme, dass die Reihenfolge der Arbeitspositionen für jeden Artikel gleich ist, gehört die Sortierzahl als PS in die Tabelle tblArbeitspositionen und nicht in die Zuordnung. Damit lässt sich die Zuordnungstabelle problemlos sortieren, auch wenn bei den tblArbeitspositionen eine Position dazwischen geschoben wird.
Daher mal die Frage:
Ist die Reihenfolge der Arbeitspositionen für jeden Artikel gleich ?
Gruß
Klaus
 

Offline Micharius

  • Access-User
  • *
  • Beiträge: 78
Re: Reihenfolge von Datensätzen, wie lösen?
« Antwort #8 am: September 13, 2018, 07:55:07 »
Hallo Klaus
Ja, die Reihenfolge der Arbeitspositionen ist immer gleich. Von dem her werde ich das tatsächlich so lösen, dass ich den PS entsprechend in der Tabelle tblArbeitspositionen zur Sortierung verwende.
Herzlichen Dank
Micharius