![]() |
Re: Welches Format für Datensatzstatus
Zitat:
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: |
Re: Welches Format für Datensatzstatus
SQL-Code:
... oder so in etwa
select dings from bums where (status & 2) = 2
äähh, ja, das problem kiegt wo anders :stupid: |
Re: Welches Format für Datensatzstatus
Zitat:
natürlich kann man es auch so machen, ich würde aber die Lösung mit den extra Tabellen wählen. |
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. |
Re: Welches Format für Datensatzstatus
Zitat:
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? |
Re: Welches Format für Datensatzstatus
Zitat:
|
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
...??? |
Re: Welches Format für Datensatzstatus
Hallo Guido,
MySQL bietet für deine Zwecke den Datentyp SET an:
SQL-Code:
Eine Lösung auf dieser Basis würde ich bevorzugen.
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; Freundliche Grüße |
Re: Welches Format für Datensatzstatus
Danke Marabu, das werde ich mir mal genauer anschauen.
|
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. |
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