Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Datenbankmodell f. CD-Datenbank
Gehe zu Seite Zurück  1, 2
zurück: zugriff auf web-sql-server typ mysql weiter: Variable einer Abfrage übergeben Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
dropdown_2404
Amateur


Verfasst am:
23. Mai 2010, 12:14
Rufname:
Wohnort: Graz

AW: Datenbankmodell f. CD-Datenbank - AW: Datenbankmodell f. CD-Datenbank

Nach oben
       Version: Office 97

Hallo astern!

Vielen Dank, du hast dir da wirklich viel Mühe gegeben!

Mein Fehler war eigentlich nur, daß ich annahm, daß ich die Tabelle "Werke" mit der Tabelle "Aufnahmen" verknüpfen muß. Dadurch sind die doppelten Einträge entstanden (Das Lied L1a, das in 2 Werkgruppen vorkommt, wurde fälschlicherweise 4x angezeigt)
Diese Verknüpfung ist aber nicht notwendig, da ich die Werke der Werkgruppen bei Bedarf in Unterformularen bzw. Unterberichten ausgeben kann.
Das heißt: Es funktioniert so perfekt! Vielen Dank!

Eine kleine Frage bleibt noch:
Ich muß ja wissen, welcher Eintrag in der Tabelle "Werke" ein Werkgruppentitel ist, um ihn unterdrücken zu können, wenn ich alle Werke ausgeben möchte (oder auch um die Schaltfläche im Formular zur Anzeige des Werkgruppeninhalts aktivieren zu können). Würdest du dafür einfach ein Ja-Nein-Feld in der Tabelle "Werke" vorsehen, oder gibt es dafür eine elegantere Lösung?

Vielen Dank für dein Engagement!
Karl-Heinz

PS: Und jetzt werde ich darangehen, dieses von dir gezeigte Prinzip für das Thema Ensembles anzuwenden. Ich nehme an, daß ich das schaffen kann. Ich melde mich auf jeden Fall noch einmal.
astern
Datenmodell-Missionar


Verfasst am:
23. Mai 2010, 14:15
Rufname: Andreas
Wohnort: Rastede


Re: AW: Datenbankmodell f. CD-Datenbank - Re: AW: Datenbankmodell f. CD-Datenbank

Nach oben
       Version: Office 97

Hallo!
Zitat:
Würdest du dafür einfach ein Ja-Nein-Feld in der Tabelle "Werke" vorsehen, oder gibt es dafür eine elegantere Lösung?
Ja, die gibt es - und zwar mit einem Sub-Select (Such mal in der Access-Hilfe nach dem Stichwort "SQL-Unterabfrage"!):

So findest Du alle Werkgruppen:
Code:
SELECT WID, WTitel
FROM   A_Werke
WHERE  WID In (SELECT werk_id_fg
               FROM   A_Werk_Werk)
So findest Du alle Werke, die keine Werkgruppen sind:
Code:
SELECT WID, WTitel
FROM   A_Werke
WHERE  WID Not In (SELECT werk_id_fg
                   FROM   A_Werk_Werk)
Sieh Dir meinen SQL-Befehl aus dem letzten Posting nochmal GENAU an:

(1) SELECT DISTINCT sorgt dafür, dass es keine doppelten Ergebnisse gibt (probier's mal ohne DISTINCT aus!)
(2) Die Joins sind. sog. OUTER JOINS (LEFT / RIGHT). Ist Dir klar, was das ist? Sonst mach Dich dazu erst mal schlau, bevor Du versuchst, dieselbe Technik bei Ensembles anzuwenden!

MfG
A*

_________________
1. Access-Gebot: Du sollst lange und gründlich über Dein Datenmodell nachdenken!
2. Access-Gebot: Du sollst keine Formulare erstellen ohne gutes Datenmodell!
dropdown_2404
Amateur


Verfasst am:
24. Mai 2010, 11:05
Rufname:
Wohnort: Graz

AW: Datenbankmodell f. CD-Datenbank - AW: Datenbankmodell f. CD-Datenbank

Nach oben
       Version: Office 97

Hallo!

Vielen Dank, daß du dich sogar am Feiertag mit meiner Datenbank beschäftigst!

Ich habe mich vorerst noch mit den Werkgruppen beschäftigt:

1. Unterabfragen:
Deine SQL-Anweisungen mit den Unterabfragen funktionieren perfekt. Ich mußte nur die 2. Abfrage mit Is Not Null erweitern, sonst ist das Ergebnis ohne Datensätze:
Code:
Not In (SELECT werk_id_fg
        FROM   C_Werk_Werk
        WHERE  werk_id_fg Is Not Null;)
Keine Ahnung warum. Aber wenn man sich länger mit Access beschäftigt, hat man schon einen Verdacht bezüglich NULL

Frage: Wie sieht es da mit der Performance aus? Ist das nicht ein enormer Aufwand, wenn Access bei jedem Datensatz eine Abfrage durchführen muß? Ich schätze, daß ich momentan ca. 400 Tonträger habe, mit je 5-10 Werken.

2. DISTINCT:
Ist mir auch dem Prinzip nach bekannt (ich werde das auch noch einmal in der Hilfe nachlesen), hilft aber in meinem Fall nicht, da dafür ja alle Felder eines Datensatzes übereinstimmen müssen (bei mir ergaben sich Datensätze mit unterschiedlichen Kombinationen, was wohl auch klar sein dürfte, wenn ein Werk auf mehreren CDs und in mehreren Werkgruppen vorkommt). Aber ich denke, das Problem ist gelöst, wenn ich Unterabfragen und Unterformulare verwende.

Ich mußte das DISTINCT sogar aus einigen Abfragen entfernen, da es mit der Sortierung nicht vereinbar war (Keine Ahnung warum), z.B.:
Code:
SELECT   C_Werke.WTitel, C_Werk_Werk.werk_id_fg
FROM     C_Werke
         INNER JOIN (C_Werk_Werk
                     INNER JOIN C_Werke AS C_Werke_1
                     ON C_Werk_Werk.werk_id_fg = C_Werke_1.WID)
         ON C_Werke.WID = C_Werk_Werk.werk_id_fw
ORDER BY C_Werk_Werk.werk_id_fg, C_Werk_Werk.werkwerk_id;

3. Sortierung:
Wenn ich die Werke einer Werkgruppe in einem Unterformular oder Unterbericht ausgebe, möchte ich sie nach der Reihenfolge auf der CD sortieren (z.B. für Liedzyklen)

Dafür sehe ich 3 Möglichkeiten:
1. Ich gebe die Werke konsequent in der richtigen Reihenfolge ein. Dann kann ich das Schlüsselfeld "werkwerk_id" dafür verwenden. Nachteil: Die Reihenfolge läßt sich bei einem Fehler kaum mehr ändern.
2. In der Tabelle Aufnahmen gibt es bereits das Feld "TrackNr", das ich aber nur in Ausnahmsfällen verwenden werde. Danach könnte man auch sortieren. Nachteile: Wesentlich kompliziertere Abfrage (2 Tabellen mehr!), zusätzliche Eingabe notwendig (schwer über VBA, denn hängt von der CD ab)
3. Ich erstelle dafür ein eigenes Feld "WGrSort" in der Tabelle "Werk_Werk". Nachteil: Zusätzliche Eingabe notwenig (evt. über VBA einen Zähler hochzählen)

Bitte, könntest du mir sagen, wie da ein Profi entscheiden würde?

Nachttrag:
Ich habe mich inzwischen mit der Sortierung der Werke bei der Ausgabe einer Werkgruppe beschäftigt und gefunden:

Lösung 2 (Feld "TrackNr") fällt aus, denn in diesem Datenbankmodell ist eine Verknüpfung der Tabellen "Werk_Werk" - "Werk" - "Aufnahme" nicht möglich. Durch die zweifache 1:n-Verknüpfung ergeben sich unrichtige Datenkombinationen.

Daher bleiben nur Lösung 1 (Schlüsselfeld "werkwerk_id") und Lösung 3 (Feld "WGrSort"). Und da könnte ich eine Kombination aus beiden vorsehen:
Normalerweise Sortierung nach "werkwerk_id", in Sonderfällen Sortierung nach "WGrSort". Das heißt: ORDER BY C_Werk_Werk.WGrSort, C_Werk_Werk.werkwerk_id;

Was meinst du: Wäre das eine professionelle Lösung?

Zur Übersicht stelle ich meinen aktuellen Datenbank-Entwurf ein (mit der Tabelle "Ensembles" muß ich mich noch beschäftigen, habe ich nur einmal aus dem Bauch heraus eingezeichnet.)



Beziehungen04.gif
 Beschreibung:
Entwurf für CD-Datenbank (erstellt in Word)
 Dateigröße:  14.79 KB
 Angeschaut:  1775 mal

Beziehungen04.gif


dropdown_2404
Amateur


Verfasst am:
30. Mai 2010, 18:22
Rufname:
Wohnort: Graz


AW: Datenbankmodell f. CD-Datenbank - AW: Datenbankmodell f. CD-Datenbank

Nach oben
       Version: Office 97

Hallo!

Ich habe inzwischen viel über mein Datenbankmodell nachgedacht und auch bereits eine Probe-Datenbank erstellt. Es funktioniert jetzt so, wie ich es mir ursprünglich vorgestellt habe (über die Speicherung der Werkverzeichnisse muß ich noch nachdenken)

Es gab dabei einige wichtige Veränderungen: Die Tabelle "Werkgruppen" rutschte zur Tabelle "Aufnahmen" und wurde zur Tabelle "AufnGruppen". Und die Tabelle "Ensembles" rutschte zur Tabelle "AufInterpreten" und wurde zur Tabelle "AufnEnsembles" (siehe angehängtes Bild).

Die Tabelle "AufnGruppen" ist jetzt eine Zwischentabelle zwischen 2 Tabellen "Aufnahmen", und die Tabelle "AufnEnsembles" ist eine Zwischentabelle zwischen 2 Tabellen "AufnInterpreten".

So kann ich mit der Tabelle "AufnGruppen" Gruppen von Aufnahmen (= Werke auf einer CD) bilden, die ich bei der Ausgabe je nach Bedarf ein- oder ausblenden kann. Und mit der Tabelle "AufnEnsembles" kann ich Interpreten einer Aufnahme zu einem Ensemble vereinen.

Diese 2 Konstrukte sind also jeweils auf die Werke auf einer CD bezogen. Auf jeder CD können unterschiedlich zusammengesetzte Werkgruppen (Aufnahme-Gruppen) und unterschiedliche zusammengesetzte Ensembles sein. So wollte ich das ursprünglich auch haben.

Jetzt stellt sich aber eine prinzipielle Frage: Es gibt schon auch Gruppen von Werken, die immer in gleicher Zusammenstellung vorkommen (z.B. Liedzyklen). Und auch die Ensembles treten häufig in gleicher Besetzung auf (wenn sich die Besetzung einmal ändern sollte, muß ich eben ein neues Ensemble mit gleichem Namen erstellen)

Frage: Wäre auch eine Konstruktion möglich bei der ich einer Aufnahme sowohl Einzelwerke als auch ganze Werkgruppen zuordnen könnte (bzw. einzelne Interpreten wie auch ganze Ensembles)? Die ursprüngliche Voraussetzung dabei bleibt aber bestehen: Beim Filtern und beim Suchen müssen die Elemente einer Gruppe den Einzelelementen vollkommen gleichgestellt sein (z.B. wenn ich nach einem bestimmten Interpreten suche oder filtere, möchte ich ihn unabhängig davon, ob er einmal Mitglied eines Ensembles ist oder ein anderes Mal als Einzelinterpret auftritt, finden).

Meine Lösungsansätze:
1. Immer nur Werkgruppen bzw. Ensembles speichern: Einzelwerke sind dann eben Werkgruppen mit nur einem Werk, Einzelinterpreten sind dann Ensembles mit nur einem Interpreten. Aber Einzelwerke und Werkgruppen stehen in einer n:m-Beziehung - Ensembles und Interpreten ebenso - , da ich brauche in den Eingabeketten jeweils 2 zusätzliche Tabellen, die auch gefüllt werden müssen --> Ein- und Ausgabe werden sehr komplex.

2. Union-Abfragen verwenden. Ich denke, da komme ich auch in des Teufels Küche ...
3. Den jetzigen Entwurf verwenden und über VBA Werkgruppen und Interpretengruppen geblockt zuordnen.

Bitte, hat da jemand eine Idee dazu?

(Entschuldigt bitte den langen Text, aber es ist doch eine komplizierte Materie)
Karl-Heinz



CD-03b-Beziehungen.gif
 Beschreibung:
 Dateigröße:  29.75 KB
 Angeschaut:  1712 mal

CD-03b-Beziehungen.gif


Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite Zurück  1, 2
Diese Seite Freunden empfehlen

Seite 2 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Datenbank-Modell oder Beziehungs-Geflecht mit self join 2 BioJan 146 15. Jan 2014, 16:33
Gast150313 Datenbank-Modell oder Beziehungs-Geflecht mit self join
Keine neuen Beiträge Access Tabellen & Abfragen: Datenbankmodell 15 TurValer 455 06. Jan 2014, 15:56
Martinha Datenbankmodell
Keine neuen Beiträge Access Tabellen & Abfragen: Datenbankmodell 5 deuxpierre 190 17. Jul 2013, 12:09
Gast150313 Datenbankmodell
Keine neuen Beiträge Access Tabellen & Abfragen: Anfängerfrage zum Datenbankmodell 9 TheUnholyOne 650 22. Mai 2012, 17:18
TheUnholyOne Anfängerfrage zum Datenbankmodell
Keine neuen Beiträge Access Tabellen & Abfragen: Access 2010 Datenbankmodell für einen Förderverein 1 holgerhee 680 04. Dez 2011, 22:15
derArb Access 2010 Datenbankmodell für einen Förderverein
Keine neuen Beiträge Access Tabellen & Abfragen: Datenbankmodell Briefmarken..... Holzweg? 2 Tellbueb 949 27. Nov 2011, 15:02
Tellbueb Datenbankmodell Briefmarken..... Holzweg?
Keine neuen Beiträge Access Hilfe: Datenbankmodell wie aufbauen? 7 Dreamer1981 993 30. Sep 2011, 21:48
derArb Datenbankmodell wie aufbauen?
Keine neuen Beiträge Access Tabellen & Abfragen: Datenbankmodell Auswahl von Namen 4 wipe 345 07. Aug 2010, 19:02
KlausMz Datenbankmodell Auswahl von Namen
Keine neuen Beiträge Access Tabellen & Abfragen: Hilfe zu meinem Datenbankmodell 8 Morphe 1456 07. Aug 2010, 17:49
Morphe Hilfe zu meinem Datenbankmodell
Keine neuen Beiträge Access Tabellen & Abfragen: Datenbankmodell probleme 3 Gast 680 24. März 2010, 15:24
AS55 Datenbankmodell probleme
Keine neuen Beiträge Access Tabellen & Abfragen: Datenbankmodell - Historische Werte 1 Thommy1589 393 11. März 2010, 15:05
Sinister Datenbankmodell - Historische Werte
Keine neuen Beiträge Access Tabellen & Abfragen: hilfe bei datenbankmodell 4 Django 1209 09. Feb 2010, 16:47
astern hilfe bei datenbankmodell
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen