AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Spezialfall: Speicherung einer Liste in einer Spalte - Nachteile?
Thema durchsuchen
Ansicht
Themen-Optionen

Spezialfall: Speicherung einer Liste in einer Spalte - Nachteile?

Ein Thema von Headbucket · begonnen am 28. Jun 2017 · letzter Beitrag vom 25. Jul 2017
 
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Spezialfall: Speicherung einer Liste in einer Spalte - Nachteile?

  Alt 28. Jun 2017, 13:03
Datenbank: SQLite • Version: 3.14.1 • Zugriff über: FireDAC
Hallo,

angenommen ich habe folgende Tabelle 1:

NameTypOthers
FooA1,25
BarA;B3,86
BazA;B;C0,98

Zur Zeit speichere ich eine Art Liste in einer einzigen Spalte (Typ) einer Tabelle einer SQLite Datenbank. Das man das nicht tun sollte ist mir bekannt, weshalb ich gerade dabei war das ganze umzustricken:
Erstellung zwei weiterer Tabellen:
- Tabelle 2: Enhält alle möglichen Einträge der Liste (A, B, C, ...)
- Tabelle 3: Enthält die Zuordnung Listeneintrag und Haupttabelle (Foo, A) (Bar, A) (Bar, B) (...)

Nun stelle ich mir aber die Frage, ob es nicht in ganz konkreten Anwendungsfällen doch sinnvoll ist eine Liste in einer einzelnen Spalte abzuspeichern.

Ich habe nämlich zur Zeit folgenden Anwendungsfall:
- Laden der kompletten Tabelle 1 (unbedingt notwendig und auch in Zukunft so)
- Erstellung einer echten Liste in Delphi aus Spalte "Typ"
- fertig

Würde ich die Datenbank nach "Lehrbuch" erstellen dann sähe mein Ablauf folgendermaßen aus:
- Laden der kompletten Tabelle 1
- Laden der kompletten Tabelle 3 und Zuordnung zu den Einträgen aus Tabelle 1
- fertig

Gefühlt sollte die zweite Variante DEUTLICH länger dauern, da ich dort ja extrem viele Abfragen an die Datenbank stellen muss. Bei meiner aktuellen Umsetzung ist es nur eine einzige Abfrage (SELECT * FROM Tabelle 1)
Keine Frage: Würde ich nur Elemente von Typ C auslesen wollen, dann wäre die zweite Variante deutlich schneller, denn ich müsste nicht die komplette Tabelle 1 auslesen. Wenn ich aber sowieso die komplette Tabelle 1 auslesen muss - dann sollte das doch die schnellste Version sein?

Das Auslesen ist leider sehr zeitkritisch, weshalb ich unbedingt so effektiv wie möglich sein möchte. Natürlich gefällt mir Variante 2 besser. Wenn ich dadurch aber statt 1 Sekunde 5 Sekunden brauche dann geht das einfach nicht.

Ich hoffe alles war einigermaßen verständlich.

Ich bedanke mich schonmal!

Grüße
Headbucket
  Mit Zitat antworten Zitat
 


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 23:46 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