kleinUNDhilflos
Benutzer
- Beiträge
- 5
Hallo Zusammen,
ich habe seit ca. 12 Jahren mit Software rund um Datenbanken zu tun. Hiervon wahr jedoch das Meiste recht rudimentärer kram (SELECT x FROM y, INSERT..., etc.). Seit kurzer Zeit darf ich mich mit der Konfiguration eines MSSQL Servers beschäftigen. Ein Buch von Klemens Konopasek, welches einen schnellen Einstieg verspricht, hat mir hier auch sehr weiter geholfen. Ich glaube jedoch immer noch etwas sehr an der Oberfläche zu schwimmen was die Möglichkeiten in MSSQL betrifft. Daher wäre ich für Lösungsvorschläge bei folgender Problemstellung dankbar:
Erstellt werden soll eine Stammdatentabelle:
Anlage: Standort: Nennleistung:
-------- ---------- ----------------
31416 Hamburg 16000 kW
31417 Berlin 20000 kW
31418 Rostock 25000 kW
(Wenn ich hier von Tabelle spreche, meine ich nicht zwangsläufig eine Tabelle im Sinne von SQL-Tabelle)
Eine solche Tabelle wäre sicherlich kein Problem
Diese Tabelle verändert sich aber nun im laufe der Zeit, z.B. weil eine Anlage umgebaut wird. - Diese Darstellung: [] soll eine Tabelle darstellen.
>>> [] >>>>>> [] >>>>>> [] >>>>>> [] >>>>>> []
21.02.2010 25.06.2010 02.07.2011 08.08.2011 24.12.2013
Ich muss also den kompletten zeitlichen Verlauf der Stammdaten darstellen können. Um im Fehlerfall aber auch eine Aussage liefern zu können, wann was falsch eingetragen wurde und evtl. auch um im Zuge einer Jahresendabrechnung falsche Abrechnungen automatisch korrigieren zu können, benötige ich eine weitere Zeitdimension -> "Wann wurde die Änderung in die Stammdaten eingetragen".
[] [] [] [] [] [] []
[] [] [] [] [] [] []
[] [] [] [] [] [] []
[] [] [] [] [] [] []
So könnte z.B. bei einer aktuellen Abrechnung automatisch kontrolliert werden ob es seit der letzten Abrechnung Änderungen gegeben hat, und ob sich diese auf einen bereits abgerechneten Zeitraum beziehen und ggf. eine Differenzzahlung sofort mit aufgenommen werden.
Ich hatte schon mal überlegt eine SQL-Tabelle nach dem Muster:
lfdNr, DatenSatz, DatenFeld, DatenWert, gueltigVon, gueltigBis, eingetragenVon, eingetragenWann, deaktiviertVon, deaktiviertWann
zu erstellen und so jedes Feld in der Stammdatentabelle durch eine Zeile in der SQL-Tabelle darzustellen. Schlecht wäre natürlich, dass im eigentlichen Inhaltsfeld "DatenWert" man sich auf einen Datentyp beschränken müsste, oder je Datentyp ein eigenes "DatenWertString" etc. machen müsste.
Der Hauptgrund warum mir diese Lösung nicht gefällt ist, dass ich momentan nicht wüste wie ich eine Sicht oder etwas derartiges erstellen sollte, so dass man auf das ganze Konstrukt ähnlich einfach wie auf eine Tabelle zugreifen kann (z.B. in Office AddIns).
Ja, puh... viel Text... der Kern ist also:
- Es gibt eine Tabelle (z.B. wie Excel) in der Daten stehen.
- Die eine weitere Zeitdimensionen ist: Wann haben sich Daten geändert.
- Die zweite weitere Zeitdimension ist: Wann habe ich von der Änderung erfahren.
Und das alles soll irgendwie in einer Datenbank dargestellt werden...
Bin für alle Denkanstöße dankbar
Gruß Uwe
ich habe seit ca. 12 Jahren mit Software rund um Datenbanken zu tun. Hiervon wahr jedoch das Meiste recht rudimentärer kram (SELECT x FROM y, INSERT..., etc.). Seit kurzer Zeit darf ich mich mit der Konfiguration eines MSSQL Servers beschäftigen. Ein Buch von Klemens Konopasek, welches einen schnellen Einstieg verspricht, hat mir hier auch sehr weiter geholfen. Ich glaube jedoch immer noch etwas sehr an der Oberfläche zu schwimmen was die Möglichkeiten in MSSQL betrifft. Daher wäre ich für Lösungsvorschläge bei folgender Problemstellung dankbar:
Erstellt werden soll eine Stammdatentabelle:
Anlage: Standort: Nennleistung:
-------- ---------- ----------------
31416 Hamburg 16000 kW
31417 Berlin 20000 kW
31418 Rostock 25000 kW
(Wenn ich hier von Tabelle spreche, meine ich nicht zwangsläufig eine Tabelle im Sinne von SQL-Tabelle)
Eine solche Tabelle wäre sicherlich kein Problem
Diese Tabelle verändert sich aber nun im laufe der Zeit, z.B. weil eine Anlage umgebaut wird. - Diese Darstellung: [] soll eine Tabelle darstellen.
>>> [] >>>>>> [] >>>>>> [] >>>>>> [] >>>>>> []
21.02.2010 25.06.2010 02.07.2011 08.08.2011 24.12.2013
Ich muss also den kompletten zeitlichen Verlauf der Stammdaten darstellen können. Um im Fehlerfall aber auch eine Aussage liefern zu können, wann was falsch eingetragen wurde und evtl. auch um im Zuge einer Jahresendabrechnung falsche Abrechnungen automatisch korrigieren zu können, benötige ich eine weitere Zeitdimension -> "Wann wurde die Änderung in die Stammdaten eingetragen".
[] [] [] [] [] [] []
[] [] [] [] [] [] []
[] [] [] [] [] [] []
[] [] [] [] [] [] []
So könnte z.B. bei einer aktuellen Abrechnung automatisch kontrolliert werden ob es seit der letzten Abrechnung Änderungen gegeben hat, und ob sich diese auf einen bereits abgerechneten Zeitraum beziehen und ggf. eine Differenzzahlung sofort mit aufgenommen werden.
Ich hatte schon mal überlegt eine SQL-Tabelle nach dem Muster:
lfdNr, DatenSatz, DatenFeld, DatenWert, gueltigVon, gueltigBis, eingetragenVon, eingetragenWann, deaktiviertVon, deaktiviertWann
zu erstellen und so jedes Feld in der Stammdatentabelle durch eine Zeile in der SQL-Tabelle darzustellen. Schlecht wäre natürlich, dass im eigentlichen Inhaltsfeld "DatenWert" man sich auf einen Datentyp beschränken müsste, oder je Datentyp ein eigenes "DatenWertString" etc. machen müsste.
Der Hauptgrund warum mir diese Lösung nicht gefällt ist, dass ich momentan nicht wüste wie ich eine Sicht oder etwas derartiges erstellen sollte, so dass man auf das ganze Konstrukt ähnlich einfach wie auf eine Tabelle zugreifen kann (z.B. in Office AddIns).
Ja, puh... viel Text... der Kern ist also:
- Es gibt eine Tabelle (z.B. wie Excel) in der Daten stehen.
- Die eine weitere Zeitdimensionen ist: Wann haben sich Daten geändert.
- Die zweite weitere Zeitdimension ist: Wann habe ich von der Änderung erfahren.
Und das alles soll irgendwie in einer Datenbank dargestellt werden...
Bin für alle Denkanstöße dankbar
Gruß Uwe