Frage zum Design für neue Datenbank

groeg

Benutzer
Beiträge
5
Hallo,

ich bin gerade dabei eine neue Datenbank zu entwickeln, bin mir aber nicht sicher wie ich die DB strukturieren soll.

Hier mal ein kleiner Ausschnitt aus den bestehenden Tabellen:
upload_2019-10-29_9-32-29.png

Es werden hier Teile erfasst, zu jeden Teil (Tabelle Data) gibt es mehrere Fehlerursachen und Orte (Tabelle Details)
Soweit kein Problem.
Nun kommt noch dazu das zu den Details zusätzlich Parameter gespeichert werden sollen.
Dies Parameter sind Produkt spezifisch und können erweitert werden.
Die spätere Tabellarische Anzeige sollte dann so aussehen.
upload_2019-10-29_9-37-33.png

Es wird von der Detail Tabelle immer der letzte Eintrag ausgewählt, dazu dann die eingetragenen Parameter.

Als erstes dache ich mir das die Parameter Tabelle wie folgt aussehen könnte.
upload_2019-10-29_9-42-4.png

Die frage wo sich mir dann stellt ist wie kann ich diese Parameter in eine Reihe bringen und als Tabellenheader den Parameternamen darstellen?

Das ganze soll in einer View für Excel zur Verfügung gestellt werden.

Und jetzt zu den Fragen:
1. Kann man das so machen, wenn ja wie bringe ich die Parameter in eine Reihe?
2. Was kann man besser / anders machen?

Grüße
 
Werbung:
Und jetzt zu den Fragen:
1. Kann man das so machen, wenn ja wie bringe ich die Parameter in eine Reihe?
Ja, kann man machen. Nennt sich EAV-Modell (Entity-Attribute-Value), Entity–attribute–value model - Wikipedia
Mit 'Ramater in Reihe bringen' meinst Du sicherlich bei der Abfrage, die Spalten mit den aktuellen Attributen zu beschriften. Dazu benötigst Du dynamisches SQL.

2. Was kann man besser / anders machen?
Es gibt in PG z.B. einen Key-Value-Store (HSTORE), neuerdings verwenden viele gerne JSON für sowas, auch das kann PostgreSQL perfekt.
 
Danke für die schnelle Antwort.
Werde mir das auf Wiki mal anschauen.

dynamisches SQL ist für mich als Anfänger sehr schwer zu verstehen. Werde mal ein paar versuche wagen.

Zu JSON bzw bei MS SQL XML: wie kann ich das dann bei einer Abfrage wieder auflösen? Auch mit dynSQL
Denke dann sollte die Tabelle wie folgt aussehen:

[ID] [int] NOT NULL,
[IDDetail] [int] NOT NULL,
[Produkt] [nvarchar](50) NOT NULL,
[Content] [xml] NOT NULL,
 
Werbung:
Zurück
Oben