Viele Male, wenn wir normalisieren wir dieses SzenarioWie effizient ist das Kategoriebaum-DB-Design?
car(id, tag, year, make_id, model_id)
make(id, name)
model(id, name, make_id)
fanden diesen Ich versuche, mit einer Kategorie Design
car(id, tag, year, make_category_id, model_category_id)
category (id, name, description, parent_category_id) //this works like a tree
mit dieser zu lösen ich wie anderen Problemen in der gleichen Datenbank lösen kann:
Also, alle Kategorien in der gleichen Tabelle zu setzen gibt mir die Flexibilität, Kategorien unbegrenzt in einem Baum zu erstellen, aber meine Frage ich s: Wie effizient ist dieser Ansatz? Dank
Dies ist nicht für Access dbm aber ich laufe schnellen Test von SQL in Access Combo-Box auf Formulare auszufüllen.
in einem Formular zum E-Mail-Kontakt I bevölkerten E-Mail-Typ Combo-Box mit:
SELECT c.name AS Category, category.name AS Subcategory, category.id
FROM category AS c INNER JOIN category ON c.id=category.parentcategory
WHERE c.[name]='Email';//CB populated with subcategories from Email parent category
für Auto in einem Formular I make Kombinationsfeld bevölkert mit:
SELECT c.name AS Category, category.name AS Subcategory, category.id
FROM category AS c INNER JOIN category ON c.id=category.parentcategory
WHERE c.[name]='Vehicle';//CB populated with subcategories from Vehicle parent category
und Combo-Box-Modell in der Das gleiche Fahrzeug ist mit
SELECT c.name, c.id
FROM category AS c
WHERE (((c.parentcategory)=[Forms]![Car]![Combo38]));//CB populated with subcategories from Make selected parent category
Ihr Entwurf ist nicht besonders effizient und ziemlich schwierig, in einigen Datenbanken. Geben Sie anstelle des übergeordneten Elements den vollständigen Pfad für die Kategorien ein. Das ist viel effizienter. –
@GordonLinoff: Nach meiner Erfahrung sind rekursive Abfragen (die für dieses Modell benötigt werden) ziemlich effizient - oder zumindest effizient genug für alle meine Anwendungsfälle. Das Speichern des vollständigen Pfads ist tatsächlich ** sehr ** ineffizient, wenn Sie die Hierarchie aktualisieren müssen. DBMS _not_ Unterstützung [moderne SQL] (http://modern-sql.com/slides) sind die Ausnahme, nicht die Regel heutzutage –
Ich verstehe das Modell, aber ich bin nicht klar auf, welches Problem es löst ...? –