![]() |
Datenbank: Firebird • Version: 3 • Zugriff über: UniDAC
Array/List-Datatype
Hallo zusammen,
ich komme nicht darauf wie ich das realisieren soll bzw. macht es anders Sinn? Folgendes Problem: Ich habe eine Tabelle mit einem Feld in der ich eine Referenzkette schreibe. z.B. "10.436.223.454.34" "10.1" "2" "4943.393.59" Momentan würde ich diese Kette als String mit Punkt getrennt schreiben. Angenehmer wäre jedoch meiner Meinung ein dynamisches array of Integer oder ähnliches. Gibt es eine Möglichkeit so ein Array in ein Feld in der Datenbank zu sichern bzw. in ein Feld in einem Dataset? |
AW: Array/List-Datatype
Hallo,
FB kennt zwar arrays ( ![]() Warum willst du das ausdröseln? Für eine bessere Suche? |
AW: Array/List-Datatype
Man könnte dies in einen BLOB Streamen. Firebird kennt zwar Arrays, die (clientseitige) Unterstützung dafür ist aber nicht so toll.
|
AW: Array/List-Datatype
Zitat:
|
AW: Array/List-Datatype
Zitat:
|
AW: Array/List-Datatype
Zitat:
Vom Aufwand eigentlich das mindestens das selbe oder? |
AW: Array/List-Datatype
Warum schreibst Du nicht jedes Element der Referenzkette in eine weitere Tabelle?
|
AW: Array/List-Datatype
Zitat:
|
AW: Array/List-Datatype
Zitat:
|
AW: Array/List-Datatype
Zitat:
Es gibt auch solche Konstrukte "10.436.1" "10.235.1" "10.1" (theoretisch) Da müsste ich ja jedes Element mehrfach eintragen und woher weiß ich welches jetzt der richtige Vorfahr ist? |
AW: Array/List-Datatype
Zitat:
Weil wie ich das sehe muss ich ja den Blob auch erstmal auseinander Pflücken. Also die Länge und Inhalt ermitteln. |
AW: Array/List-Datatype
Zitat:
|
AW: Array/List-Datatype
Hallo,
genau, ID des Vorfahrs muss mit rein. Ist die VorfahrID=0, ist es das "Root"-Element. Aber muss Du denn per SQL gezielt darauf zugreifen? |
AW: Array/List-Datatype
Zitat:
|
AW: Array/List-Datatype
Wenn Du ein Element mehrfach drin hast, kannst Du den Vorgänger bzw. den Nachfolger nicht direkt referenzieren. Dann musst Du eine Kreuztabelle zwischenschalten.
|
AW: Array/List-Datatype
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ein Beispiel, vielleicht wird es dann klarer was ich genau vor habe.
|
AW: Array/List-Datatype
Zitat:
Eher etwas umständlicher. |
AW: Array/List-Datatype
Das ist relativ simpel. Du brauchst zwei Tabellen. Eine für die Bestandteile und eine für die Komponenten.
Die Bestandteile hätten dann die Form einer doppelt verketteten Liste (ID, Vorgänger-ID, Nachfolger-ID, Menge bzw. Prozentsatz) und können auch selbstreferenzierend sein. Du musst nur Rekursion verhindern und bei der Verwendung von Prozent darauf achten, dass die Summe immer = 100 ist. Ich bilde z.b. Autobatterien genauso ab. |
AW: Array/List-Datatype
Hallo,
ich würde sogar soweit gehen, dass zur Komponentenbildung ausschließlich Komponenten, keine Bestandteile benutzt werden können. Eine Komponente enthält mindestens einen Bestandteil. |
AW: Array/List-Datatype
Ich versteh langsam glaub ich worauf ihr hinaus wollt.
Ich versuch das erstmal umzusetzen jetzt, dann geb ich nochmal Rückmeldung. Vielen Dank erstmal. |
AW: Array/List-Datatype
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Hab ich das richtig verstanden, siehe Anhang? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz