realbasic-nug.de
[Top] [All Lists]

Re: Arrays in Datenbank

To: REALbasic NUG German <realbasic-nug dot de at lists dot realsoftware dot com>
Subject: Re: Arrays in Datenbank
From: Claudius Sailer <Claudius at sailer-online dot de>
Date: Wed, 27 Jul 2005 06:33:54 +0200
Delivered-to: realbasic-nug dot de at lists dot realsoftware dot com
References: <3205204257 dot 408598859465 at [192 dot 168 dot 1 dot 11]> <65F66767-E15C-4280-95C6-AC2138971347 at sailer-online dot de> <3205206686 dot 411028463590 at [192 dot 168 dot 1 dot 11]>
Am 26. Jul 2005 um 07:11 Uhr schrieb Stefan Mettenbrink:

Aber, wie lege ich eine Variable innerhalb der Datenbank als Array an?


wie soll das aussehen und was willst Du eigentlich machen? (für mein
Verständnis)


Bisher hatte ich ein Array in dem ich verschieden viele Werte sichern
konnte. Dieses möchte ich nun in eine Variable innerhalb einer Tabelle
sichern. Mit den Möglichkeiten, die mir auch ein Array bietet (append,
remove, Zugriff über Index).

Da die Angaben immer noch sehr vage ist vielleicht folgendes:

Nicht immer ist eine Datenbank die Lösung, aber für folgendes sicherlich.

Wichtig bei einer Datenbank ist im Vorfeld eine Normalisierung. D.h. Du legst fest welche Daten in welche Tabelle müssen.

z.B. Du möchtest eine Adressdatenbank anlegen.

Lösung 1:
Jetzt kannst Du eine einzige Tabelle anlegen in der alle Daten liegen (IMHO sehr schlecht) oder

Lösung 2:
Du legst 2 Tabellen an. Eine für die Adressen mit einem Link zu einer 2. Tabelle mit den Länderbezeichnungen (IMHO gut)

Lösung 3:
Oder 3 Tabellen mit Adressen, Länderbezeichnungen und einer dritten Tabelle mit PLZ zu Ortsbezeichnung (IMHO gut bis muss nicht unbedingt sein.

Problem in Lösung 1 in manchen Adressen steht nun blöderweise Deutschland, BRD, Bundesrep. Deutschland etc drin, was eigentlich immer das selbe sein sollte. Du kannst also nicht alle Adressen mit dem selben Land sicher finden.

Problem in Lösung 2 Du hast das selbe Problem wie in Lösung 1 jedoch mit den Orten, falls das für Dich wichtig ist, musst Du Lösung 3 nehmen.

In Valentina wird jedem Datensatz eine eindeutige ID vergeben (macht die Datenbank), die dann wiederum in den Referenztabellen abgelegt werden muss. Die Datenbank kann mir gewährleisten, dass keine benötigten/verknüpften Datensätze ausversehen gelöscht werden können/ dürfen.

Ich hoffe das hilft etwas weiter.

In meinem eigenen Programm habe ich am Anfang auch mit Arrays gearbeitet und bin dann auf eine Datenbank umgestiegen. Bei zunehmender Datenmenge wurde das Programm mit Arrays immer langsamer, immer größer und immer unhandlicher. In der Datenbank habe ich eine sehr tief gehende Normalisierung durchgeführt. Mein Programm ist eine private Finanzverwaltung und es gibt Tabellen für

Konten, Kategorieen, Kontengruppen, Kategoriegruppen, Daueraufträge, Buchungen etc.

Verbunden sind die Datensätze immer über die IDs der Datensätze in den einzelnen Tabellen. Datensätze können INSERT, DELETE oder UPDATE werden ich kann mir Datenranges, einzelne Daten anhand von ID oder von eineindeutigen Informationen selektieren und auslesen. Lösungsmöglichkeiten gibt es viele.

Um Dir dahingehend weiterhelfen zu können, dass ich sage, ich würde es so oder so machen, muss ich wissen worum es geht. Die bisher von Dir gelieferten Informationen sind hierzu viel zu wenig um eine Idee zu entwickeln (Sorry). Wenn es darum geht unzusammenhängende Variablen zwischen zu speichern, dann würde ich beim derzeitigen Wissensstand sagen, dass dafür eine Datenbank vielleicht nicht so geeignet ist, bei den von mir benannten Beispielen (und vielen anderen auch) ist jedoch eine Datenbanklösung definitiv die Beste und bei steigender Datenmenge schnellste Lösung.

Ciao


Claudius

--
G4/733 QS / MacOS X 10.4de / RB 5.5.5/ Valentina 1.10.0 & 2.0.4
Homepage    http://www.ClaSai.de
iChat        ryhoruk
RealBasic ListBoxes: [ I feel the need...the need for speed!!! ]


<Prev in Thread] Current Thread [Next in Thread>