AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie diese Tabelle (tdbf) am günstigsten anlegen ?

Wie diese Tabelle (tdbf) am günstigsten anlegen ?

Offene Frage von "NoGAD"
Ein Thema von NoGAD · begonnen am 30. Mär 2009 · letzter Beitrag vom 30. Mär 2009
Antwort Antwort
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#1

Wie diese Tabelle (tdbf) am günstigsten anlegen ?

  Alt 30. Mär 2009, 02:26
Datenbank: tdbf • Version: 6.9 • Zugriff über: direkt
Hiho.

In Sachen DB bin ich ein Anfänger, daher bitte ich um Rat, wie eine Tabelle auszusehen hat, die folgenden Ansprüchen genügt:

1. Datenbank muss vordefiniert werden, da in die Felder später Daten eingetragen werden.
Bsp: Vorgabe 12 Stunden alle 1/4 Stunde Eintragsmöglichkeit
2. Index sollte Datum und Uhrzeitabhängig sein
3. Feld Datum/Uhrzeit darf nicht fix sein, da eine Anpassung des Intervalles erfolgen sollte.
Bsp: Aus 1/4 Stunde kann auch 10 Minuten-Takt werden. Die Assoziationen der Uhrzeit-Termin sollen dabei entweder neu geordnet oder bestehen bleiben/angepasst werden
(vorher: Termine = 8:15, 8:30 -> 8:10, 8:20 ODER [..] -> 8:10, 8:30 wobei in Fall 2 um 8:20 ein leeres Feld entsteht)
4. Aus Pkt.3 ergibt sich eine Indizierte Erweiterbarkeit der DB, was sich wiederum wohl auf den Index bezieht, der neu erstellt werden muss (?)

Wie sähe so eine Struktur aus ?

Danke für Tipps,

~M.
Mathias
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie diese Tabelle (tdbf) am günstigsten anlegen ?

  Alt 30. Mär 2009, 05:38
Ich würde die Zeitpunkte nicht vorgeben, sondern nur den Start speichern.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Wie diese Tabelle (tdbf) am günstigsten anlegen ?

  Alt 30. Mär 2009, 07:16
Hallo,

1. Warum dbf .. (jaja, musste sein )

Also, du brauchst mindestens 2 Tabelle,

Tab 1: Main
ID integer (autoinc, primary key),
wird immer hochgezählt, hat aber sonst keinen Bezug zu den Daten
TheDate DATE
TheTime TIME

Tab 2: Data
ID siehe Tabelle Main
MainID Integer Foreign key auf Main.ID
Data1 XXX
Data2 XXX


Bsp.-Datensätze
Main
ID, TheDate, TheTime
10, 12.03.2009, 12:03
11, 12.03.2009, 12:05

Data
25, 10, XXX Daten für Main-Record 10
27, 11, XXX Daten für Main-Record 11


Warum so kompliziert ?
Es geht sogar noch "komplizierter"

Tab 2: Data
ID siehe Tabelle Main
MainID Integer Foreign key auf Main.ID
DataName Char(20)
DataValue Char(20)

Data
25, 10, 'Name', 'Müller'
26, 10, 'VorName', 'Heinz'
28, 10, 'Name', 'Walter'
20, 10, 'VorName', 'Fritz'



Mit dieser Struktur bist du flexible gegenüber Änderungen !
Neues Daten-Feld gewünscht ? -> Einfach Speichern.
Neues Datum/Zeit ? -> Einfach Speichern.



Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Wie diese Tabelle (tdbf) am günstigsten anlegen ?

  Alt 30. Mär 2009, 13:26
Danke Euch beiden ersteinmal für die schnellen Antworten. Gleich noch vornweg: mir schwirrt der Kopf. Ich kann DiESES abstraktes Denken einfach nicht umsetzen
Die Relationen einer Datenbank bzw der Tabellen untereinander/miteinander geht mir einfach nicht leicht von der Denkweise in mich hinein. Rechnen geht besser
Arrays kann ich besser im Kopf verwalten. Aber sowas nicht. Bin leider auch kein gelernter Informatiker, mache alles als Autodidakt. Auch ein Hinweis auf Dieses Tutorial (http://www.delphi-treff.de/tutorials...bank-einstieg/) hilft mir nicht, weil das nur eine eindimensionale Tabelle beinhaltet und mir vom Prinzip nicht weiterhilft

Zitat von hoika:
Hallo,

1. Warum dbf .. (jaja, musste sein )
Weil ich diese DB miteinkompilieren kann. Es geht um tdbf (http://tdbf.sourceforge.net/ Stand 2006), da diese auch kostenfrei ist und mein Projekt Freeware/Opensource werden soll.

Zitat von hoika:
Also, du brauchst mindestens 2 Tabelle,

Tab 1: Main
ID integer (autoinc, primary key), wird immer hochgezählt, hat aber sonst keinen Bezug zu den Daten
TheDate DATE
TheTime TIME

Tab 2: Data
ID siehe Tabelle Main
MainID Integer Foreign key auf Main.ID
Data1 XXX
Data2 XXX


Bsp.-Datensätze
Main
ID, TheDate, TheTime
10, 12.03.2009, 12:03
11, 12.03.2009, 12:05

Data
25, 10, XXX Daten für Main-Record 10
27, 11, XXX Daten für Main-Record 11
Warum benötige ich dann noch ein Feld ID für die Tabelle Daten ?

Zitat von hoika:
Warum so kompliziert ?
Es geht sogar noch "komplizierter"

Tab 2: Data
ID siehe Tabelle Main
MainID Integer Foreign key auf Main.ID
DataName Char(20)
DataValue Char(20)

Data
25, 10, 'Name', 'Müller'
26, 10, 'VorName', 'Heinz'
28, 10, 'Name', 'Walter'
20, 10, 'VorName', 'Fritz'
In diesem Bsp. wären dann also am 12.03.2009 12:03 zwei verschiedene Termineinträge definiert (Heinz Müller und Fritz Walter)?


Zitat von hoika:
Mit dieser Struktur bist du flexible gegenüber Änderungen !
Neues Daten-Feld gewünscht ? -> Einfach Speichern.
Neues Datum/Zeit ? -> Einfach Speichern.
Hm, grundlegend, nach auseinaderklamüsern habe ich es glaube ich verstanden. Nur umsetzen - das wird eine Sisyphusarbeit für mich ;P

Danke nochmals.
Mathias
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Wie diese Tabelle (tdbf) am günstigsten anlegen ?

  Alt 30. Mär 2009, 13:47
Hallo,

kurz, ja du hast es verstanden

Man muss immer weitersehen.
Das schwierigste bei einer DB ist, wenn das Design der Tabellen geändert werden muss,
weil z.B. neue Felder eingefügt werden müssen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
325 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Wie diese Tabelle (tdbf) am günstigsten anlegen ?

  Alt 30. Mär 2009, 15:05
Hm, deswegen versuche ich es mit der von mir gewählten, da ich mit einer einzelnen DB schon Erfahrungen habe und nachträgliche Felder leicht einbaubar sind.
Aber in dem Zusammenhang noch eine Frage:

ist es sinnvoll schon vorher einige leere Felder zu definieren, die später evtl. nutzbar gemacht werden können und bis dahin 'einfach so nebenher mitlaufen'?
Z.B. eine TB mit vorname 1x nachname 1x dummy_int 5x dummy_char 5x dummy_date 3x (5 x dummy_xxx => dummy_xx1, dummy_xxx2 ...) ?
Mathias
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Wie diese Tabelle (tdbf) am günstigsten anlegen ?

  Alt 30. Mär 2009, 16:23
Hallo,

nein, ist es nicht.
1., du weisst nicht, wie gross z.B. ein Char sein wird.

Les dir ausserdem mal in wikipedia was zu Normalisierung von Tabellen durch.

Noch ein Tip:
Wir reden von Tabellen, nicht von Datenbanken, wenn wir dir tbf meinen.
Unter DBase wäre das Verzeichnis der dbf's eine Datenbank.


Heiko
Heiko
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz