AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [Tabellendesign] Mehrstufige Unterkategorien
Thema durchsuchen
Ansicht
Themen-Optionen

[Tabellendesign] Mehrstufige Unterkategorien

Ein Thema von rayj · begonnen am 18. Jan 2008 · letzter Beitrag vom 18. Jan 2008
Antwort Antwort
Seite 1 von 2  1 2      
rayj

Registriert seit: 18. Okt 2005
46 Beiträge
 
#1

[Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 08:46
Datenbank: MSSQL • Version: 2000 • Zugriff über: Delphi ADO Komponenten
Hallo
Ich hätte eine Datenbank-technische Frage und zwar:
Ich muss ein Programm schreiben, in welchem Fragen/Probleme und Antworten/Dokumente etc. dazu gespeichert werden können.

Es soll vor allem in unserer IT-Abteilung benutzt werden, da wir nur 4 Leute sind und so meist alle an etwas anderem arbeiten und viele Probleme öfters auftauchen und dann nur einer bescheid weiss.

Es sollen Kategorien und mehrere Stufen an Unterkategorien angelegt werden können, doch genau da häng ich fest.

Angenommen es soll so aussehen:

IT
--Programmierung
----Delphi
----PHP
----C#
--Hardware
--Software
----Windows Xp
--Sonstiges

Dann mach ich ja ne Tabelle namens Kategorien, nur da weiss ich nicht wie ich es anstellen soll, dass ich einer Kategorie eine Unterkategorie angeben kann und dann in Delphi herausfinden kann, auf welchem Level sich die Kategorie befindet.

Ich hoffe ihr versteht die Frage. Wäre um einen Denkanstoss sehr dankbar.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 09:21
Ich glaube, was Du suchst, sind Nested Sets
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 09:23
Einfach Tabelle eine Feld erweitern, das die ID des Vorgängers enthält. man könnte auch den Level mit ablegen, wäre aber gefährlich, wenn die Kategorie verschoben oder das Schema weiter aufgedrösselt wird.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 09:25
Hallo,

oder um es kurz zu machen.

Deine Kategorie-Tabelle enthält

Id Integer
PreId Integer
Name Char

PreId ist entweder 0, für Hauptkategorie
oder >0, dann ist es eine Subkategorie und PreId zeigt auf die eltern-Kategorie.

Ich würde noch eine Dummy-Kategorie Id=0, PreId=0 anlegen
und dann auf PreId einen ForeignKey auf Id setzen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#5

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 09:27
Ich habe da in meinem alten Projekt ein ähnliches Problem gehabt und es auf andere Art gelöst (entspricht aber definitiv nicht einer Normalform ): Das Feld Kategorie enthielt einen beliebigen Pfad. Unterordner wurden durch \ getrennt. Mit einer kleinen Funktion konnte ich mir alle Datensätze in einem Treeview als Baum darstellen lassen. Den "Pfad" konnte man schön zerlegen und so auch ohne weiteres die Tiefe bestimmen. Die Funktion ist allgemein geschrieben, ich habe sie nicht zu Hand, wenn aber Interesse besteht, suche ich sie morgen mal raus.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 09:37
Aber warum sollte man Funktionalitäten des DBMS verschmähen und alles selber umständlich lösen?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#7

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 09:42
Naja, ich brauchte so nur 2 Funktionen. Eine baut mir den Baum auf, die andere liefert mir alle Kategorien unter einer Oberkategorie zurück. War mir deutlich(!) weniger Aufwand als mit SQLs und Nested Sets zu arbeiten, und daher gar nicht umständlich. Kommt aber natürlich auf das Projekt an und was man damit machen will
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 09:53
Und was macht man, wenn nun eine Kategorie geändert, verschoben wird oder das Schema feiner strukturiert wird?
Außerdem finde ich diese Vorgehensweise nicht wirklich einfacher.
Markus Kinzler
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#9

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 10:17
Zitat von raji:
Ich muss ein Programm schreiben, in welchem Fragen/Probleme und Antworten/Dokumente etc. dazu gespeichert werden können.
Ähn...Frage: warum sich die Arbeit/Mühe machen, sowas selber zuschreiben, wenn es schon was fertiges gibt ->ScribblePapers oder CueCards
Mit dem ersteren organisiere ich alle meine Codeschnippsel, Tipps&Tricks und Sonstiges zu meinen Projekten - feine Sache
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#10

Re: [Tabellendesign] Mehrstufige Unterkategorien

  Alt 18. Jan 2008, 14:32
Hab momentan ähnliche Überlegungen. 4 Möglichkeiten hab ich dabei in Erwägung gezogen:

- nested sets ==> is wegen höherer Komplexität beim Ändern der Baumstruktur rausgefallen
- den Pfad als string(bzw. varchar) speichern ==> Ändern der Baumstruktur is da noch ekliger
- Parent speichern ==> da isses relativ schwer die Baumstruktur zu kriegen, weil man ja bei den Blättern anfangen müsste
- die IDs der Children als varchar hinterlegen

Für letzteres hab ich mich entschieden(außer ich find doch noch was besseres ). Das ist relativ einfach, man kriegt die Baumstruktur leicht, das Verändern des Baums macht auch keine Probleme. Nur beim Entfernen von Knoten is der Aufwand relativ groß, weil alle Einträge durchgegangen werden müssen um eventuelle inkonsistenzen zu vermeiden.

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz