mikrocontroller.net

Forum: PC-Programmierung Datenbank variable Anzahl Daten


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich beschäftige mich gerade neu mit MariaDB. Dabei stellt sich mir 
folgende Frage: wie geht man in der Praxis vor, um eine variable Anzahl 
an Daten zu speichern: zB die IP zu einer Domain. Da kann es ja sein es 
gibt keine IP, einen A Record oder gleich mehrere oder zusätzlich noch 
AAAA.
Mit einem Feld Domain und einem IP ist es dann ja irgendwie nicht getan. 
Oder kann man irgendwie in IP mehrere Daten speichern? Wie hole ich die 
dann einzeln wieder aus dem Feld ab? Danke.



Martin

Autor: Irgendwer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> Oder kann man irgendwie in IP mehrere Daten speichern?

Ja, indem man einfach mehrere Einträge pro IP anlegt

127.0.0.1  domaene1.de
127.0.0.1  domaene2.de
127.0.0.1  domaene3.de

Autor: планар троль (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann die Felder als Text, resp varchar definieren und XML eintraege 
in ein einzelnes Feld kombinieren. Man untergraebt so halt die 
suchfunktion.

Autor: 50c (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
планар троль schrieb:
> Man kann die Felder als Text, resp varchar definieren und XML eintraege
> in ein einzelnes Feld kombinieren. Man untergraebt so halt die
> suchfunktion.

...ich würde statt XML lieber JSON nehmen:
https://mariadb.com/kb/en/library/json-functions/

Autor: test (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Oder eine Excel Tabelle base64 Kodiert im Textfeld speichern. Natürlich 
das xls vorher tippen um sich nicht die Performance zu verdauen.


Hilfe...

Autor: test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tippen = zippen

Autor: werists (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Durch eine passende Datenstruktur über mehrere Tabellen mit eindeutigen 
Keys

Tabelle Domains -> key -> Tabelle IPs

LG Thomas

Autor: Rolf M. (rmagnus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
test schrieb:
> Oder eine Excel Tabelle base64 Kodiert im Textfeld speichern. Natürlich
> das xls vorher tippen um sich nicht die Performance zu verdauen.

Willst du sie unverdaut wieder ausscheiden? ;-)

Autor: Kai S. (kai1986)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie werists schon gesagt hat über mehrere Tabellen (das ist genau einer 
der Gründe für Datenbanken). Du hast eine Tabelle mit den Domains (und 
einer Spalte ID (Primärschlussel)), eine zweite Tabelle mit den IPs (und 
einer eigenen Spalte ID (Primärschlussel) und als drittes eine Tabelle, 
in der die zusammengehörende ID aus der Domain Tabelle und die ID aus 
der IP Tabelle in je einer Spalte gelistet ist und zusammen eine 
Fremdschlüssel ergeben. Über die SQL Abfragen bekommst du die 
entsprechenden Daten bei der Abfrage passend zusammengesetzt wieder aus 
der Datenbank heraus.

Gruß Kai

Autor: Egon D. (egon_d)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:

> Ich beschäftige mich gerade neu mit MariaDB. Dabei
> stellt sich mir folgende Frage: wie geht man in der
> Praxis vor, um eine variable Anzahl an Daten zu
> speichern: [...]

Man fragt die Wikipedie unter dem Stichwort:
"Normalisierung (Datenbank)".

Autor: Clemens L. (c_l)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Egon D. schrieb:
> Normalisierung

z.B.
CREATE TABLE Domains(
  DomainID INT PRIMARY KEY,
  Name     TEXT
  /* ... */
);
CREATE TABLE DNS(
  DomainID INT,
  Name     TEXT,
  Value    TEXT
);
INSERT INTO Domains VALUES(1, 'martin.example');
INSERT INTO DNS VALUES(1, 'A', '203.0.113.42');
INSERT INTO DNS VALUES(1, 'AAAA  ', '2001:db8::2a');

Martin schrieb:
> Wie hole ich die dann einzeln wieder aus dem Feld ab?
SELECT *
FROM Domains
JOIN DNS USING (DomainID)
WHERE Domains.Name = 'martin.example';

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.