Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
DB Design Frage
robmir
myCSharp.de - Member



Dabei seit:
Beiträge: 155

Themenstarter:

DB Design Frage

beantworten | zitieren | melden

verwendetes Datenbanksystem: <ACCESS 2007>

Hallo zusammen,

ich habe ein paar Fragen zu DB Design. Ich möchte Euch um Rat fragen, wie Ihr es lösen würdet.

Hier die Aufbau:
Ein Packet beinhaltet verschiedene Botschaften, Botschaften beinhalten verschiedene Signalen, welche wieder verschiedene Attributen haben.

Beispiel Aufbau:

Packet A beinhaltet
Botschaft_1
Botschaft_2
Botschaft_3
Botschaft_xx

Botschaft_1 beinhaltet:
Signal_1_1
Signal_1_2
Signal_1_xxx

Botschaft_2 beinhaltet:
Signal_2_1
Signal_2_2
Signal_2_xxx

usw

Es kann mehrere Versionen von Packeten geben z.B. Packet(n), welche viele gleiche Botschaften beinhalten wie Packet(n-1) aber es sind einige neue Botschaften dazugekommen bzw. welche gelöscht worden. Das gleiche kann mit Signalen passieren, die können einer Botschaft dazukommen bzw. entfallen.

Ich möchte z.B. viele Vergleiche machen z.B. Unterschiede zwischen Packet(n) und Packet(n-1) und Packet(n-2). Ach nochwas, ein Packet beinhaltet ca. 200 Botschaften und eine Botschaft ca. 10 Signalen --> ein Packet wird 2000 Signalen haben. Ich habe z.B. etwa 100 Packeten --> 100*2000 = 200000 Signalen. Es kann aber viel mehr werden.

Hier meine Vorschläge, was meint Ihr?



viele grüße
Attachments
private Nachricht | Beiträge des Benutzers
Pippl
myCSharp.de - Member



Dabei seit:
Beiträge: 40

beantworten | zitieren | melden

Also anhand deines "Aufbau Beispiels" wäre deine Lösung 1 passend. Hier wären aber die Versionen nicht möglich.

Die Lösung 2 wäre eine Möglichkeit um die "Versionen" zu realisieren.
Aber ich finde so würdest du einige Daten doppelt und dreifach speichern, da Version 2 und 3 von einem Packet (oder doch eher Paket? ) ja zum Teil gleiche/ähnliche Daten wie Version 1 speichern.

Mein 1. Ansatz wäre gewesen Packet eine weitere 1:1 Beziehung auf sich selbst zu geben um so die ID der Vorgänger Version zu speichern.
Dann müssten in der Tabelle PacketBotschaft nur noch die Änderungen gespeichert werden (inkl der Information ob diese Botschaft hinzugefügt oder entfernt wurde).
(das gleiche gilt dann auch bei der Tabelle Botschaft)
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.832

beantworten | zitieren | melden

Wenn ein Paket mehrere Botschaften und umgekehrt haben kann, ist Lösung 1 gar nicht möglich.
Muss auf eine Beziehung zwischen Paket und Botschaft etwas angehängt werden, das sich auf diese Beziehung bezieht (zum Beispiel ein Datum) ist Lösung 2 unumgänglich.
private Nachricht | Beiträge des Benutzers