Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Datenbank: Datensätze mit Reihenfolge möglich?

Datenbank: Datensätze mit Reihenfolge möglich?

marm07.06.2222:38
Vielleicht gibt es unter Euch den ein oder anderen Datenbankspezialisten.
Ich würde gerne eine Datenbank anlegen mit Datensätzen zu Akteninhalten. Akten habe ja die Eigenheit in einer Reihenfolge im Aktenordner abgeheftet zu werden. Demgegenüber haben Datensätze einer Datenbank zwar eine ID, aber grundsätzlich haben Datensätze keine Reihenfolge.
Nun habe ich also die Datensätze angelegt und nummeriere diese nach ihrer Position durch. Nun möchte ich einen Aktenstapel noch als Datensatz zwischen Datensatz 4 und 5 abheften, d.h. alle Datensätze ab Nr. 5 müssten um eine Nummer erhöht werden.
Wie kann ich das bei einer Datenbank praktisch lösen?
Klar, ich könnte Excel oder Numbers nehmen. Aber die Datenbank Ninox hat eine Integration in den Kalender, die ich gerne nutzen möchte. Reminders wäre auch ganz praktisch dafür; trage ich einen Termin ein, ändert sich aber die Reihenfolge.
Habt ihr eine Idee oder wisst wie das geht?
0

Kommentare

caMpi
caMpi07.06.2222:44
marm
… praktisch…
Obs für Ninox eine spezielle Syntax gibt, weiss ich nicht, aber für T-SQL und MySQL/MariaDB funktioniert
UPDATE Tabellenname
SET Id = Id + 1
WHERE Id > IdDesNeuenDatensatzes
Hab ich die Frage falsch verstanden?
„Keep IT simple, keep IT safe.“
0
marm07.06.2222:50
caMpi
marm
… praktisch…
Obs für Ninox eine spezielle Syntax gibt, weiss ich nicht, aber für T-SQL und MySQL/MariaDB funktioniert
UPDATE Tabellenname
SET Id = Id + 1
WHERE Id > IdDesNeuenDatensatzes
Hab ich die Frage falsch verstanden?
Ich glaub du hast mich verstanden 👍, nur habe ich bislang noch keine SQL-Datenbank gebaut.
Wenn das nur mit SQL möglich ist, nehme ich SQL. Ich habe auf meiner Diskstation probeweise NocoDB installiert . Vielleicht probiere ich es hier mal. Und ich sende eine Frage an Ninox, ob die was Analoges (für das Digitale natürlich) in petto haben.
0
Schens
Schens08.06.2207:03
Nimm nicht 1,2,3, sondern 10,20,30
So hast du neun Slots (11,12,13…) zwischen den Akten und zerstörst nicht mutwillig die Datenkonsistenz aller Datensätze.
+3
Deichkind08.06.2207:23
Kannst du nicht Datum und Uhrzeit dazu einsetzen, die Reihenfolge festzulegen?
+1
Stefanie Ramroth08.06.2207:34
Schens
Nimm nicht 1,2,3, sondern 10,20,30
So habe ich auch immer programmiert. Sonst wird es nämlich schwierig, Position 1 zu ersetzen (hier nimmt man einfach "5" als Wert und renumeriert anschließend wieder mit 10..20..30. Und zum Anhängen am Ende einfach einen fiktiv hohen Wert nahe ∞ und ebenfalls neu nummerieren, et voilà.
Mit der "echten" Position zu arbeiten hat definitiv mehr Nach- als Vorteile - finde ich.
+1
marm08.06.2209:10
Danke für eure Rückmeldung. Ich werden es mit Ninox probieren. Ich gehe schrittweise vor. Erstmal fange ich überhaupt an und nummeriere mit 10, 20, ... durch.
Es gibt die Möglichkeit der "Massendatenänderung" mit Formel. Zudem habe ich gestern Abend noch Forenbeiträge mit ähnlichen Problemstellungen gefunden. Leider wurden die Beispieldatenbanken entfernt und in die Codeschnipsel muss ich mich erst reindenken. Sieht aber alles in allem so aus, als könnte Ninox das, was ich mir erwarte.
+1
Kronar (back)08.06.2211:22
Die Frage ist, woraus resultiert die Reihenfolge? Kann man da was automatisches ableiten, was die Reihenfolge richtige berechnet...Ansonsten sind die beschriebenen Lösungen schon korrekt...
0
marm08.06.2211:25
Kronar (back)
Die Frage ist, woraus resultiert die Reihenfolge? Kann man da was automatisches ableiten, was die Reihenfolge richtige berechnet...Ansonsten sind die beschriebenen Lösungen schon korrekt...
So eine Art Büroklammer mit AirTag, die die Position im Aktenordner bestimmt
Eine Systematik, so dass sich aus dem Inhalt die Ordnungsnummer ableitet, ist in meiner Verwaltung noch in ferner Zukunft.
0
Kronar (back)08.06.2211:28
Eigentlich schreit das ein bisschen nach Liste mit Vorgänger und Nachfolger, die dann gepflegt werden können...
+1
marm08.06.2211:35
Ich kann in Ninox Unterlisten erstellen, eine Art vereinfachte verknüpfte Tabelle. Diese kann ich für einzelne Vorgänge oder Aufgaben nutzen. Hier kann ich dann auch gut mit Datum oder einer UID arbeiten.
Damit habe ich dann auch gleich ein System zur Rechnungsverfolgung usw.
Kronar (back)
Eigentlich schreit das ein bisschen nach Liste mit Vorgänger und Nachfolger, die dann gepflegt werden können...
0
ssb
ssb08.06.2212:57
Kronar (back)
Eigentlich schreit das ein bisschen nach Liste mit Vorgänger und Nachfolger, die dann gepflegt werden können...
Ja, so wäre es richtig. Eine "linked list", in der jedes Dokument auf das nachfolgende und das vorhergehende zeigt (oder NULL, wenn es das erste oder letzte ist).
Also müsste man in solch einer DB für jeden Vorgang eine Linked List Tabelle anlegen, die Vorgänger, Nachfolger und Dokument-ID enthält. Jedes Dokument kann dann mit einer ID in einer weiteren Tabelle abgelegt werden. Die ID wird dann in die entsprechende Linked List an der richtigen Stelle eingehängt. Bei jedem Vorgang würde dann einfach der Verweis auf die Linked List oder den ersten Eintrag stehen.

Das ist dann aber nicht ganz unkompliziert - in Numbers würde man dafür aber einfach an der richtigen Stelle eine Zeile einfügen und die ID eintragen.
Sowas habe ich bisher nur in C/C++ gelöst
+1
boratis
boratis08.06.2213:46
Hallo,
das Online-Handbuch von Ninox erzählt was über Massendatenänderungen . Da kann man auch berechnete Werte zuweisen (AlterWert + 1), das geht auch ohne SQL vielleicht schon in die richtige Richtung. Was dann nur noch fehlt ist die Selektion der betroffenen Datensätze.

Ich hoffe das hilft ...
+1
KoGro08.06.2213:58
Woraus ergibt sich denn die Reihenfolge im Aktenordner?

Denn wenn Du dieses Merkmal auch in der Datenbank anlegst kannst Du doch ganz einfach danach sortieren?
marm
Akten habe ja die Eigenheit in einer Reihenfolge im Aktenordner abgeheftet zu werden.
0
marm08.06.2214:08
ssb
Ja, so wäre es richtig. Eine "linked list", in der jedes Dokument auf das nachfolgende und das vorhergehende zeigt (oder NULL, wenn es das erste oder letzte ist).
Also müsste man in solch einer DB für jeden Vorgang eine Linked List Tabelle anlegen, die Vorgänger, Nachfolger und Dokument-ID enthält. Jedes Dokument kann dann mit einer ID in einer weiteren Tabelle abgelegt werden. Die ID wird dann in die entsprechende Linked List an der richtigen Stelle eingehängt. Bei jedem Vorgang würde dann einfach der Verweis auf die Linked List oder den ersten Eintrag stehen.
Das wäre so eine Art Struktur wie in der Graphentheorie. Dann wäre eine Liste die Knoten, die miteinander verknüpft sind. Einleuchtend, aber wie ich das in einer Datenbank umsetzen soll...
boratis
das Online-Handbuch von Ninox erzählt was über Massendatenänderungen
Danke für deinen Hinweis. Die Massendatenänderung hatte ich schon gefunden. Aber in deiner Quelle ist noch erklärt, dass daraus ein Skript gemacht werden kann. Das erscheint mir bis auf weiteres optimal.
KoGro
Woraus ergibt sich denn die Reihenfolge im Aktenordner?
Aus dem Chaos soll langsam die innere Ordnung erwachsen Im Ernst, ich muss da Ordnung reinbringen. Daher die Datenbank. Und daher die Überlegung, wie ich immer wieder umsortieren kann, ohne dass es mir meine Datenbank zerhaut.
0
marm09.06.2220:26
Mit einer Vorlage vom hilfreichen Ninox-Support und einiger Bastelei habe ich nun eine Datenbank, die genau das tut, was ich möchte.
In einer Tabelle sind aller Ordner, in einer anderen Tabelle alle Akten. Wenn ich nun einen Ordner anklicke, werden mir alle zugehörigen Akten angezeigt und mit einem Knopfdruck kann ich eine Akte eine Position nach oder unten schieben und alle Positionsnummern werden entsprechend angepasst. Das Verschieben wurde durch einen Tausch der Positionsnummer mit dem Nachbar gelöst. Die Akte kann ich aber auch in einen anderen Ordner befördern. Geht doch
+2

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.