Archiv verlassen und diese Seite im Standarddesign anzeigen : feld variabler länge
joey.brunner
28-11-2002, 11:54
hi,
folgendes problem:
ich hab ein webinface, das ca. 200 session_variablen definiert. diese werden codiert und in eine datenbank geschrieben. jetzt hab ihc ein problem, es gibt dann ncoh eine weitere variable, diese variable kann eine oder mehrer ip adressen oder gar netze oder subnetze inkl. masken aufnehmen. das heisst, der user kann entweder 1.1.1.1 oder 10.20.102.10/24 oder 1.1.1.1 / 255.255.255.0 uebergeben. ich moechte diese werte auch gerne in eine datenbank schreiben, aber leider hab ich keine ahnung wie ich das feld definieren soll, da es sihc ja um eine variable groesse handel. ich kann ja schlecht einfach 2000 zeichen dafuer bereitstellen.
vielen dank fuer euere hilfe
joey
Nim einfach einen BLOB oder typ text.
joey.brunner
28-11-2002, 14:21
wie funktioniert das dann. die spallten muessen doch gleich gross sein oder? werden die spalten dynamisch veraendert ?
danke
Da musst Du mal in die Datenbank-Doku schauen. Aber TEXT wird von MySql dynamisch verwaltet.
joey.brunner
28-11-2002, 14:31
danke ! werde ich machen
Christoph
28-11-2002, 15:15
Achtung!
Du versuchst ein Problem zu lösen, dass Du dir falsch gestellt hast!
Dein "Feld beliebiger Länge" ist in Wirklichkeit ein mehrwertiges
Attribut und sollte auch entsprechend im Datenbankschema modelliert werden,
also mit einer zweiten Tabelle.
Alles andere ist vermutlich Murks.
Christoph
Ich habe mir nochmal durchgelesen was Du eigentlich willst. Wenn ich das richtig verstehe möchtest Du eine IP - Netmask Kombination speichern?
Wie wäre es denn, wenn Du die Eingaben des Users so umwandelst, das Du dir über die Länge der Eingabe keine Gedanken zu machen brauchst. Das hat zusätzlich noch den Vorteil das Du unsinnige Eingaben abfangen kannst.
joey.brunner
28-11-2002, 17:41
Hallo ihr beiden,
also nochmal was ich genau will;)
der user macht eingabe. genauer gesagt uebergibt er ipadressen. er kann eine oder 230348230 uebergeben, wie er will, er kann Masken angeben oder auch nicht.
das waeren beispiele
10.209.100.1
oder
10.209.100.1, 10.209.100.2, 192.168.0.0/24
diesen string will ich in eine tabelle schreiben, genauer gesagt in eine feld. wie koennte ich das mit einer zweiten tabelle loesen, das problem wird doch immer sein, dass ich nicht weiss, wieviele ip adressen er angibt.
Christoph
29-11-2002, 07:43
> diesen string will ich in eine tabelle schreiben, genauer gesagt in eine feld.
> wie koennte ich das mit einer zweiten
> tabelle loesen, das problem wird doch immer sein, dass ich nicht weiss,
> wieviele ip adressen er angibt.
>
Na ohne den angegebnen String zu parsen und in die einzelnen Adressen zu
zerlegen wirds natürlich nicht gehen.
Mehrwertige Attribute implementiert man im relationalen Modell wie folgt:
CREATE TABLE tbl (nr int PRIMARY KEY, /*weitere Attribute*/);
CREATE TABLE mehrwertatt (tblnr int REFERENCES tbl(nr), nr int, att varchar(20),
PRIMARY KEY (tbla, int));
Christoph
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.