Normalisierungsfrage
Hi Leute,
ich bin dabei ein kleines Programm für die Zeiterfassung zu entwickeln und habe zur Normalisierung eine Frage. Bisher sieht das ganze so aus:
tab_mitarbeiter:
MAR_ID (PK); Name, Anschrift, etc.
tab_tagesbericht:
TBT_MID (PK);TBT_Datum (PK);TBT_Beginn; TBT_Ende
(Der Schlüssel setzt sich aus der Mitarbeiter-Nr und dem aktuellen Datum zusammen)
tab_tagesbericht_detail:
TBT_MID (PK);TBT_Datum (PK);TBT_Pos (PK);AFT_ID (FK);TSK_ID (FK)
(Der Schlüssel setzt sich aus der Mitarbeiter-Nr, dem Datum und einer Positionsnr zusammen)
tab_task:
TSK_ID (PK); TSK_Beschreibung
tab_auftrag:
ADT_ID (PK), Auftragsdaten
Ich habe ein Problem mit der Detailtabelle. Es kann auch Positionen geben, die nicht speziell einem Auftrag zugeordnet werden können. Zum Beispiel, wenn ein Mitarbeiter das Lager fegt etc. und somit könnte ich, so wie die DB im Moment aufgebaut ist, für dieses Feld keine referenzielle Integrität erstellen. Prinzipiell müsste ich aus dieser Tabellen noch einmal zwei machen, oder nicht?
Also:
tab_tagesbericht_detail1:
TBT_MID (PK);TBT_Datum (PK);TBT_Pos (PK);TSK_ID (FK)
und:
tab_tagesbericht_detail2:
TBT_MID (PK);TBT_Datum (PK);TBT_Pos (PK);AFT_ID (FK)
Kommt mir aber irgendwie auch seltsam vor, weil die Schlüssel jeweils gleich sind...wobei es halt in der unteren Tabelle nicht für jede Position, die es in der ersten Tabelle gibt, einen Datensatz gäbe. Die nächste Frage wäre dann inwiefern es problematisch wäre, eine Zeile im DataGrid an verschiedene Tabellen zu binden...
Ich hoffe, ich habe mich nicht ganz dusselig ausgedrückt.
Gruß
Christoph
Ps.: Bevor gleich jemand eine endlose Debatte über Cross-Postings startet. Ja, dieser Beitrag wurde auch unter www.mycsharp.de gepostet und ja, ich bekenne mich schuldig in allen Anklagepunkten.
ich bin dabei ein kleines Programm für die Zeiterfassung zu entwickeln und habe zur Normalisierung eine Frage. Bisher sieht das ganze so aus:
tab_mitarbeiter:
MAR_ID (PK); Name, Anschrift, etc.
tab_tagesbericht:
TBT_MID (PK);TBT_Datum (PK);TBT_Beginn; TBT_Ende
(Der Schlüssel setzt sich aus der Mitarbeiter-Nr und dem aktuellen Datum zusammen)
tab_tagesbericht_detail:
TBT_MID (PK);TBT_Datum (PK);TBT_Pos (PK);AFT_ID (FK);TSK_ID (FK)
(Der Schlüssel setzt sich aus der Mitarbeiter-Nr, dem Datum und einer Positionsnr zusammen)
tab_task:
TSK_ID (PK); TSK_Beschreibung
tab_auftrag:
ADT_ID (PK), Auftragsdaten
Ich habe ein Problem mit der Detailtabelle. Es kann auch Positionen geben, die nicht speziell einem Auftrag zugeordnet werden können. Zum Beispiel, wenn ein Mitarbeiter das Lager fegt etc. und somit könnte ich, so wie die DB im Moment aufgebaut ist, für dieses Feld keine referenzielle Integrität erstellen. Prinzipiell müsste ich aus dieser Tabellen noch einmal zwei machen, oder nicht?
Also:
tab_tagesbericht_detail1:
TBT_MID (PK);TBT_Datum (PK);TBT_Pos (PK);TSK_ID (FK)
und:
tab_tagesbericht_detail2:
TBT_MID (PK);TBT_Datum (PK);TBT_Pos (PK);AFT_ID (FK)
Kommt mir aber irgendwie auch seltsam vor, weil die Schlüssel jeweils gleich sind...wobei es halt in der unteren Tabelle nicht für jede Position, die es in der ersten Tabelle gibt, einen Datensatz gäbe. Die nächste Frage wäre dann inwiefern es problematisch wäre, eine Zeile im DataGrid an verschiedene Tabellen zu binden...
Ich hoffe, ich habe mich nicht ganz dusselig ausgedrückt.
Gruß
Christoph
Ps.: Bevor gleich jemand eine endlose Debatte über Cross-Postings startet. Ja, dieser Beitrag wurde auch unter www.mycsharp.de gepostet und ja, ich bekenne mich schuldig in allen Anklagepunkten.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 32463
Url: https://administrator.de/contentid/32463
Ausgedruckt am: 23.11.2024 um 02:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo,
Betriebswirtschaftlich gesehen kann es durchaus Sinn machen, die von dir erwähnten Positionen einer Art "Dummy"-Auftrag zuzuordnen. Letzendlich geht es ja um Kostenerfassung, und da möchte man ja auch Gemeinkosten erfassen und bestimmten Konten zuordnen können. Bei Einrichtung entsprechender Konten könntest du so jederzeit überprüfen, wieviel Aufwand in einem Zeitraum für Bodenpflege, für Maschinenwartung, für Mitarbeiterschulung... getätigt wurde.
Filipp
Betriebswirtschaftlich gesehen kann es durchaus Sinn machen, die von dir erwähnten Positionen einer Art "Dummy"-Auftrag zuzuordnen. Letzendlich geht es ja um Kostenerfassung, und da möchte man ja auch Gemeinkosten erfassen und bestimmten Konten zuordnen können. Bei Einrichtung entsprechender Konten könntest du so jederzeit überprüfen, wieviel Aufwand in einem Zeitraum für Bodenpflege, für Maschinenwartung, für Mitarbeiterschulung... getätigt wurde.
Filipp
also, wenn ich dich richtig verstanden habe, willst du abrechnungsfähige und nicht-abrechnungsfähige zeiten differenzieren.
üblicherweise macht man für allgemeine hilfszeiten (hof fegen etc) einen dummy auftrag, auf den solche zeiten gebucht werden.
zusätzlich gibt es immer noch spzielle arbeitsvorgangs-kennziffern für auftragsbezogene kosten, die jedoch dem kunden nicht belastet werden. (z.b. für arbeiten die aufgrund von eigenverschulden doppelt ausgeführt worden sind)
gruß,
supa
üblicherweise macht man für allgemeine hilfszeiten (hof fegen etc) einen dummy auftrag, auf den solche zeiten gebucht werden.
zusätzlich gibt es immer noch spzielle arbeitsvorgangs-kennziffern für auftragsbezogene kosten, die jedoch dem kunden nicht belastet werden. (z.b. für arbeiten die aufgrund von eigenverschulden doppelt ausgeführt worden sind)
gruß,
supa
was ich noch vergessen habe: es gibt übelicherweise noch eine 3t art an kosten, und zwar kundenbedingte mehrarbeit, z.b. durch nachträgliche änderungswünsche oder kundenseitiges verschulden z.b. durch lieferung falscher daten etc.
du willst ja sicherlich die vorkalkulierten kosten den tatsächliche angefallenen gegenüberstellen. mit der differenzierung kann man dann sehr eifnach die kosten ausweisen, die man dem kunden zusätzlich zu den kalkuleirten abrechnet - sofern die mitarbeiter die zeiten korrekt einbuchen.
je feiner man die hilfszeiten diefferenziert, desto besser kann man die effiziente nutzung der einzelnen kostenstellen nachhalten.
du willst ja sicherlich die vorkalkulierten kosten den tatsächliche angefallenen gegenüberstellen. mit der differenzierung kann man dann sehr eifnach die kosten ausweisen, die man dem kunden zusätzlich zu den kalkuleirten abrechnet - sofern die mitarbeiter die zeiten korrekt einbuchen.
je feiner man die hilfszeiten diefferenziert, desto besser kann man die effiziente nutzung der einzelnen kostenstellen nachhalten.
Ps.: Bevor gleich jemand eine endlose Debatte über Cross-Postings startet.
Ja, dieser Beitrag wurde auch unter www.mycsharp.de gepostet und ja,
ich bekenne mich schuldig in allen Anklagepunkten.
Ja, dieser Beitrag wurde auch unter www.mycsharp.de gepostet und ja,
ich bekenne mich schuldig in allen Anklagepunkten.
Moin Christoph,
habe gerade gelesen, dass Deine Frage in mindestens einem anderen Forum ebenso wortreich, aber verständlicher beantwortet wurde.
Kannst Du dann bitte hier diesen Beitrag auf "Gelöst" setzen und/oder schließen?
Danke
Biber