Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Welches Format für Datensatzstatus (https://www.delphipraxis.net/113076-welches-format-fuer-datensatzstatus.html)

Jelly 2. Mai 2008 11:11

Re: Welches Format für Datensatzstatus
 
Zitat:

Zitat von Sharky
Wäre es nicht besser, solange es sich nur um wenige Stati handelt, diese in einem Int Feld der Tabelle zu halten und dann über Bit-Operationen auzuwerten?

Das spart zwar 2 Zusatztabellen, erschwert aber erheblich Anpassungen an den Daten. Was, wenn morgen ein Status dazukommt. Oder nicht mehr existiert?

Bedenken gibts auch, wenn du Abfrage über ein Status machen willst. Da kommst du um Bitoperationen nicht rum, d.h. es werden Operatoren odes Funktionen in SQL Statements vorkommen, und die machen dir die Indizierung auf das Statusfeld zunichte.

Ich hatte mal vor einiger Zeit gleiches zu bewältigen, und hatte auch diese Idee. Hab sie aber aus genannten Gründen schnell wieder über Bord geschmissen, und hoffe sie lagert jetzt irgendwo ganz tief im Mariaanengraben :mrgreen:

tomsel 2. Mai 2008 11:12

Re: Welches Format für Datensatzstatus
 
SQL-Code:
 select dings from bums where (status & 2) = 2
... oder so in etwa








äähh, ja, das problem kiegt wo anders :stupid:

mkinzler 2. Mai 2008 11:16

Re: Welches Format für Datensatzstatus
 
Zitat:

"Bimuster" Grübelnd...
Wer hat mir den t geklaut... :stupid:
natürlich kann man es auch so machen, ich würde aber die Lösung mit den extra Tabellen wählen.

Jelly 2. Mai 2008 11:20

Re: Welches Format für Datensatzstatus
 
Noch eine Ergänzung: Was ist mit der Datenkonsistenz... Wie willst du einschränken, dass plötzlich der Status 3172 irgendwo gesetzt wird.

MySQL ist doch ein relationales DBMS. Dann sollte man es auch relational nutzen. Weil es sich in der Statustabelle ja wohl um +/- 3 Einträge handelt, friesst ein Join auf diese Tabelle kein Brot.

guidok 2. Mai 2008 12:31

Re: Welches Format für Datensatzstatus
 
Zitat:

Zitat von mkinzler
Ich würde die Stati in eine eigene Relation auslagern

Das soll wohl heißen:

Tabelle A ist die Tabelle mit den importierten Daten, und Tabelle A_Status enthält die Einträge mit den Statusinformationen, z.B.

A.ID (Primarykey)
A.xxx

A_Status.AID
A_Status.Statusinfo



Habe ich das richtig verstanden?

Jelly 2. Mai 2008 12:37

Re: Welches Format für Datensatzstatus
 
Zitat:

Zitat von guidok
Habe ich das richtig verstanden?

Du bruchst auf jeden Fall 3 Tabellen. Deine eigentliche Daten (Import), eine Status Tabelle mit den 3 Records deiner Statusse... Und dann natürlich die CrossReference Tabelle, welche dir die m:n Beziehung zwsichen importiertem Datensatz und dem Status gibt.

guidok 9. Mai 2008 09:02

Re: Welches Format für Datensatzstatus
 
Also gut, ich habe jetzt drei Tabellen:

Import - ID, weitere Felder

Import_Status - ID, STATUS

Import_XStatus - Import_ID, Import_Status_ID


Wie sieht jetzt eine SQL-Abfrage aus, welche die drei Tabellen verbindet?

z.B.

Alle Import_Status.STATUS zu einer gegebenen Import.ID

SQL-Code:
SELECT A.STATUS FROM Import_Status A
  ...???

marabu 9. Mai 2008 11:36

Re: Welches Format für Datensatzstatus
 
Hallo Guido,

MySQL bietet für deine Zwecke den Datentyp SET an:

SQL-Code:
CREATE TABLE Importe (ID INTEGER NOT NULL, Status SET('ANGL', 'INAK', 'LÖVM'));
ALTER TABLE Importe MODIFY Status SET('ANGL','INAK','LÖVM','TEST');
SELECT * FROM Importe WHERE FIND_IN_SET('INAK', Status);
UPDATE Importe SET Status = 'INAK,TEST' WHERE ID = 0;
Eine Lösung auf dieser Basis würde ich bevorzugen.

Freundliche Grüße

guidok 9. Mai 2008 12:24

Re: Welches Format für Datensatzstatus
 
Danke Marabu, das werde ich mir mal genauer anschauen.

bluesbear 9. Mai 2008 17:53

Re: Welches Format für Datensatzstatus
 
Öhm - jetzt mal ganz blöd gefragt: Wieso nicht einfach 3 Boolean Felder nehmen? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz