SQL Fragen zu Datenbankdesign

Magic1416

Lieutenant
Registriert
Dez. 2003
Beiträge
533
Hallo,

ich sitze gerade über dem Design einer Datenbank und stehe vor folgender Überlegung:

Ich möchte in einer Tabelle Objekte abspeichern, dessen Definition erst vom User in einem Programm oder einer Weboberfläche festgelegt wird. Diese Definition muss natürlich auch in der Datenbank gespeichert sein.

z.B.
Object Server enthält zum Beispiel 5 feste Felder wie Name, OS, Funktion usw. und ggf. 1:n Beziehungen wie Anzahl Netzwerkkarten mit IP Adresse usw.

Das Object Firewall enthält zb 3 feste Felder und 1:n Beziehungen wie Netzwerk, Verkabelung

Also um es kurz zusammenzufassen soll der User die Möglichkeit haben Objekte mit einer beliebigen Anzahl and Feldern und einer beliebigen Anzahl an 1:n Relations erzeugen können.

Die Objekte sollen sich dann zu guter letzt auch noch hyrachisch (Baumstruktur) gliedern lassen.

zb. könnte sowas folgendermassen aussehen:
Kunde->Standorte->Raum->Server->Netzwerkdaten

oder

Hersteller->Fahrzeugtyp->Modell->Halter

oder zum Spass beides in der selben Datenbank.
Das ganze dann am besten noch genauso dynamisch und schnell abfragbar. z.b Zeig mir alle Server im selben IP Netzsegment sowie dessen physikalischen Standort.

Ist diese Idee überhaupt möglich in einer relationalen Datenbank umzusetzen, und wenn ja, kennt jemand einen Ansatz ?

Gruss Magic
 
Hi,
also möglich ist es so wie ich es verstanden habe schon.
du brauchst dazu einfach nur die nötigen tabellen
1. server = {servernr, Name, OS, Funktion ... } (servernr als primary key)
2. netzwerkkarten (netzwerkkartenid, serverid, ipadresse) (netzwerkakrtenid als primary key, serverid als foreignkey zu server)
3. firewall = {firewallid, firewall, netzwerk, verkabelung}

gruß
 
Jep geht wenn du die richtigen Tabellen vorher anlegst und auch alle Keys setzt.
Dann kann man ganz einfach über ein Webinterface in PHP zb. einfach die Insert reinknallen und fertig.
Also neue Server anlegen und alles was du willst.
 
ja, aber das meine ich nicht. Das wäre ja wieder statisch.
Was ich möchte, ist ein allgemeingültiges Design für eine hierachische Objektdarstellung.

Ich als Designer weiss ja jetzt noch nicht was der User für Objekte abbilden will und wie diese aussehen.

Ich muss dem User daher die Möglichkeit geben die Hierachie und die Objekte zu definieren. Ob das Netzwerke und Server sind oder Hersteller und Fahrzeuge soll keine Rolle spielen.

Ich brauch ein Konstrukt mit dem man sowas abbilden könnte.
 
Damit deine DB dann universell wird musst du dann schon noch administrieren... ansonsten schau dir mal alternativen wie objektorientierte Datenbanken (DB4O) an. Da kann mann dann zur Laufzeit erzeugte Objekte und Objektstrukturen speichern....

Aber ich meine macht es Sinn so eine DB wie du sie haben willst zu erzeugen? Was dein Gedanke nämlich zulässt ist das du alles speichern willst, was es gibt, gegeben hat und geben wird. Eine Datenbank ist für mich eine zielgerichtete Speicherung von bestimmten Daten in einem konkreten Kontext. Und eben diese Kontext fehlt bei dir.

Nochmal zurück zur relationalen DB. Um deine DB dynamisch zu erweitern musst du hier einfach wissen mit was willst du erweitern, wenn du das dann weißt, dann kannst du auch die nötigen Tabellen die anlegen, mit den nötigen Schlüsseln... Eine universelle Tabelle/-nstruktur macht im Sinne einer DB keinen Sinn.

Ich meine eine Relation ist einfach eine Tabelle, und wie willst, du rein theoretisch, alles in eine Tabelle oder mehrere Tabellen abbilden, wenn du noch nicht weißt was du speichern willst? Deswegen wenn du weißt wie etwas (Objekte) zusammen hängt (Beziehungen), macht es erst Sinn zu speichern, da es im Moment meines Wissens nach keine semantischen Datenbanken gibt, also Datenbanken die automatisch über die Attribute die eingegben werden Beziehungen herstellen...

Gruß
 
Zurück
Oben