![]() |
Datenbank: MySql • Version: 5.x • Zugriff über: MyDac
Array of Integer in MySql
Hi,
geht das überhaupt? Ich habe mehrere IDs von Datensätzen die einem User zugeordnet sind. Im moment habe ich das als String mit , getrennt in der Datenbank. Nun dachte ich, wenn man das als Interger Array in die MySql bekommt, ist das bestimmt eleganter und man könnte dann auch in diesem Array suchen ob eine ID enthalten ist. Allerdings google ich schon seit einiger zeit, und find nix gescheites. Nun zu den Fragen. Geht das überhaupt was ich vorhabe? Wenn ja, wie legt man das Array an? CREATE TABLE test (??)? Wie frage ich ab, ob in diesem Array z.b. der wert 10 enthalten ist? SELECT * FROM test WHERE Feld=?????? Wie lese ich das Array ein? Weil ein FieldByName('Feld').AsArray gibt es ja nicht. Vielen dank im voraus |
AW: Array of Integer in MySql
Ich verstehe nicht (wie immer).
Das läuft doch dem Konzept einer relationalen DB vollkommen zuwider. Du hast doch eine 1:n-Kardinalität von User: Datensätze. Dann braucht deine Datensätze-Tabelle doch nur einen Fremdschlüssel auf den Primärschlüssel deiner User-Tabelle. Hast du weitere Einschränkungen, wie dass zu jedem Nutzer mindestens ein Datensatz existieren muss? Aber entweder stehe ich auf dem Schlauch, oder das mit Arrays und dann versuchen irgendwie zu parsen ist ein wirklich ungünstiger Ansatz. |
AW: Array of Integer in MySql
Hmmm, also mal ein beispiel.
Ich habe 10.000 Artikel und 20 Hauptgruppen. Jeder Artikel kann mehr als eine der vorhanden Hauptgruppen zugehören. z.b. Artikel 1 gehöhrt zu gruppe 1,7,12,19 Artikel 2 gehöhrt zu gruppe 1,2 Diese zugehörigkeit steht natürlich im Artikel drin. Im moment wie gesagt als String mit Komma getrennt. Mir ist keine SQL-Abfrage bekannt, wo ich nun sagen kann, zeige mir alle Artikel die in gruppe 3 sind. |
AW: Array of Integer in MySql
Deine Tabellen sollten in diesem Fall folgendermaßen angelegt werden:
1. Tabelle Artikel (ArtID, ...) 2. Tabelle Hauptgruppen (GrpID, Gurppenname, ...) 3. Tabelle Zuordnung ArtGrp (ZuOrdID, ArtID, GrpID) |
AW: Array of Integer in MySql
|
AW: Array of Integer in MySql
Zitat:
Trotzdem vielen dank für eure Hilfe. |
AW: Array of Integer in MySql
![]() Das mit der Normalisierung ist in der Praxis immer wieder mal ein heikles Thema, aber die erste Normalform sollte bitte immer drin sein. Sherlock |
AW: Array of Integer in MySql
Zitat:
... where gruppe like '%,3,%' or gruppe like '3,%' or gruppe like '%,3' or gruppe='3' |
AW: Array of Integer in MySql
Um es noch weiter zu treiben geht auch ein
... where find_in_set(id, gruppe) Gruß aus den sonnigen Dortmund Frank Graeber |
AW: Array of Integer in MySql
Klartext: Das geht, und es wurden ja schon Vorschläge gebracht, aber da sich Deine Fragestellung doch sehr noch nach "Planung" oder "früher Entwicklung" anhört:
MACH DAS BITTE NICHT! Du bringst Dich dadurch unnötig in Teufels :evil: Küche. Nur weil etwas geht, macht man es ja trotzdem nicht. Immerhin verwendest Du ja MySQL und nicht eine Textdatei zum speichern Deiner Daten, und das wäre auch möglich. Normalisier Deine Tabellen soweit es geht. Dritte Normalform sollte noch drin sein, die erste ist IMHO Pflicht. Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 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