Entwickler-Ecke
Datenbanken - Fragen zu Memo und Widememo und ein paar andere Datentypen
Magic2001 - Mo 15.04.13 19:23
Titel: Fragen zu Memo und Widememo und ein paar andere Datentypen
Ich möchte eine neue Datenbank anlegen. Nun benötige ich ein Memofeld das eigentlich eine unbekannte Größe hat. Also ich weiß es nicht. Es können wenige Zeilen sein oder auch sehr viel text. Also sagen wir mal bis zu etwa 1Mb oder so.
Welchen Datentyp muss ich dafür angeben?
Welche länge gebe ich bei Boolean an?
WasWeißDennIch - Mo 15.04.13 20:01
Welches DBMS? Es gibt welche, die kennen gar kein Boolean, das muss man dort selbst deklarieren. Für die Texte würde ich BLOB nehmen, aber auch da gibt es Unterschiede zwischen den einzelnen Systemen.
Gerd Kayser - Di 16.04.13 06:28
Magic2001 hat folgendes geschrieben : |
Nun benötige ich ein Memofeld das eigentlich eine unbekannte Größe hat. Also ich weiß es nicht. Es können wenige Zeilen sein oder auch sehr viel text. Also sagen wir mal bis zu etwa 1Mb oder so. |
Ich würde den Inhalt der Memos in einzelnen Dateien speichern und in der Datenbank nur die Informationen (Dateiname, Speicherort, ggf. Größe, Stichworte usw.) festhalten.
zuma - Di 16.04.13 09:04
Die Memo's in einzelne Dateien speichern halte ich für sehr schlecht.
Erst recht, wenn man eh ne Datenbank benutzt. Neben der ganzen selbst zu machenden Verwaltungsarbeit der Dateien hat man sozusagen verschiedene Speicherorte und
Zugriffslogiken. Dateien auf der Festplatte geniessen keinen "Schutz" vor dem Zugriff löschwütiger User, und ... und .. und ...
Zuerst sollte man sich Gedanken machen, welche Datenbank man nehmen möchte. (Ich würde Firebird empfehlen.)
Dort wären sogenannte Blobfelder für Memo's geeignet.
Boolean's haben dort keine "Länge", es gibt auch dort den Datentyp boolean.
Insgesamt scheint es mir, das noch keine Erfahrungen mit einer Datenbank vorhanden sind,
daher empfehle ich ersteinmal, sich mit dieser Materie zu beschäftigen.
"Mal eben" eine Datenbank zu benutzen geht in den meisten Fällen schief, wenn dort keine oder kaum Kenntnisse eines Datenbank-systems vorhanden sind.
Gerd Kayser - Di 16.04.13 10:29
zuma hat folgendes geschrieben : |
Die Memo's in einzelne Dateien speichern halte ich für sehr schlecht. Erst recht, wenn man eh ne Datenbank benutzt. |
So pauschal kann man das aber nicht sagen. Es gibt Argumente, die dafür sprechen, und es gibt Argumente dagegen. Die kann man bei Google alle nachlesen. Deshalb erspare ich mir hier die Auflistung.
Zitat: |
Insgesamt scheint es mir, das noch keine Erfahrungen mit einer Datenbank vorhanden sind, daher empfehle ich ersteinmal, sich mit dieser Materie zu beschäftigen. |
Da gebe ich Dir vollkommen Recht. Die Zeit, die man im Vorfeld für das Datenbankdesign aufwendet, holt man bei der anschließenden Programmierung mindestens doppelt und dreifach wieder rein.
Delete - Di 16.04.13 14:15
zuma hat folgendes geschrieben : |
Zuerst sollte man sich Gedanken machen, welche Datenbank man nehmen möchte. (Ich würde Firebird empfehlen.)
Dort wären sogenannte Blobfelder für Memo's geeignet. |
Man kann in Firebird sogar auswählen, ob man binäre oder textbasierte Blobfelder verwendet. Für ein Memo ist natürlich die textbasierte Version richtig.
zuma hat folgendes geschrieben : |
Boolean's haben dort keine "Länge", es gibt auch dort den Datentyp boolean. |
Das ist nicht richtig. Firebird verfügt nicht über einen Boolean-Typ. Den muß man sich für jede DB, die man unter Firebird anlegt, selbst deklarieren. Und natürlich hat der solcherart deklarierte Boolean-Typ auch eine Länge, nämlich die von ShortInt oder Integer. Für den Zugriff via FibPlus-Komponenten genügte ein ShortInt als Grundlage des Boolean-Typs. Meine neuen IBDac von Devart erwarten hier aber ein Integer. DDL:
Quelltext
1: 2: 3: 4:
| CREATE DOMAIN INTBOOLEAN AS INTEGER NOT NULL CHECK (VALUE IN (0,1)); |
Nersgatt - Di 16.04.13 14:17
Perlsau hat folgendes geschrieben : |
Das ist nicht richtig. Firebird verfügt nicht über einen Boolean-Typ. |
Die Version 3 von Firebird wird einen Boolean-Datentyp haben.
Xion - Mi 17.04.13 14:16
Nach dem anderen Thread zu schließen, ist das DBMS noch garnicht klar.
Bzgl. Boolean kann man immer einen Trick anwenden (z.B. einen Integer benutzen).
Bei Texten kommt es ganz drauf an. Ich nehme an, du willst darin auch suchen, und das wohl nicht nur Case-Sensitive. SQLite ist da z.B. recht komfortabel, denn es bietet TEXT-Datentypen an, in denen man sogar Größenunabhängig suchen kann.
SQL-Anweisung
1: 2:
| CREATE TABLE test ( memoInhalt TEXT COLLATE NOCASE ) |
Ich weiß nicht, inwiefern andere Datenbanken sowas unterstüten. Die BDE konnte das auf alle Fälle nicht :mrgreen:
WasWeißDennIch - Mi 17.04.13 14:21
Er hat "BDE" gesagt, steinigt ihn :mrgreen:
Tranx - Do 18.04.13 05:03
WasWeißIchDenn: Womit willst Du ihn den steinigen, mit Boolschen Bits? Pass auf, dass Du dann nur die Trues erwischst, denn die Falses kommen prompt zurück. Allerdings, die sind so leicht, da spürt man eh nix.
Oder mit Integers. Man, die sind doch viel zu schwer, die kriegste kaum gehoben. Außerdem ist deren Flugkurve so verdammt abgehackt 0 - 1 - 2 - 2 - 3 - 3 - 4 - 3 - 4 - .... BUMMM!
Oder gar die Extended-Variante. Lass die Finger von denen, die flutschen Dir wegen der Ungenauigkeiten aus den Fingern und landen sonstwo.
Wäre da noch string. Bloß nicht, da wirfst Du und wirfst Du und kein Ende in Sicht. Schließlich ist Dein Arm vor lauter Werfen ganz lahm und das Opfer merkt wegen der Leichtigkeit der Einzelbytes gar nix. Das ist, als ob Du mit einem ganz locker gepapptem Schneeball jemanden erschlagen willst.
Wie wäre es mit Variant oder Pointer: Ganz tückisch, die Dinger. sehen so klein aus, aber da steckt Masse hinter - möglicherweise, möglicherweise aber auch nur laue Luft.
Und last-not-least: Records und Objekte. Ojoj, ne bloß nicht diese. Da gibt es teilweise üble Ankerfunktionen udn -Prozeduren, und dann kreisen die Dinger plötzlich um dich.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!