api-erstellen #1
@@ -0,0 +1,45 @@
|
||||
-- # Definition der Tabelle
|
||||
-- DROP TABLE public."Arbeitszeiten";
|
||||
create table public."Arbeitszeiten"
|
||||
(
|
||||
"Datum" date not null,
|
||||
"Arbeitszeit" interval(6) null,
|
||||
constraint "Arbeitszeiten_pkey" primary key ("Datum")
|
||||
);
|
||||
|
||||
|
||||
-- # Definition der Ansichten
|
||||
-- ## Wöchentlich
|
||||
create view "Arbeitszeiten - Woche" ("Woche", "Gesamtarbeitszeit", "Arbeitstage", "Überstunden") as
|
||||
select
|
||||
to_char(date_trunc('week'::text, "Arbeitszeiten"."Datum"::timestamp with time zone),
|
||||
'TMYYYY#WW'::text) as "Woche",
|
||||
sum("Arbeitszeiten"."Arbeitszeit") as "Gesamtarbeitszeit",
|
||||
count("Arbeitszeiten"."Datum") as "Arbeitstage",
|
||||
sum("Arbeitszeiten"."Arbeitszeit") - count("Arbeitszeiten"."Datum") ::double precision * '08:00:00'::interval as "Überstunden"
|
||||
from "Arbeitszeiten"
|
||||
group by (date_trunc('week'::text, "Arbeitszeiten"."Datum"::timestamp with time zone))
|
||||
order by (date_trunc('week'::text, "Arbeitszeiten"."Datum"::timestamp with time zone));
|
||||
|
||||
-- ## Monatlich
|
||||
create view "Arbeitszeiten - Monat" ("Monat", "Gesamtarbeitszeit", "Arbeitstage", "Überstunden") as
|
||||
select
|
||||
to_char(date_trunc('month'::text, "Arbeitszeiten"."Datum"::timestamp with time zone),
|
||||
'TMYYYY TMMonth'::text) as "Monat",
|
||||
sum("Arbeitszeiten"."Arbeitszeit") as "Gesamtarbeitszeit",
|
||||
count("Arbeitszeiten"."Datum") as "Arbeitstage",
|
||||
sum("Arbeitszeiten"."Arbeitszeit") - count("Arbeitszeiten"."Datum") ::double precision * '08:00:00'::interval as "Überstunden"
|
||||
from "Arbeitszeiten"
|
||||
group by (date_trunc('month'::text, "Arbeitszeiten"."Datum"::timestamp with time zone))
|
||||
order by (date_trunc('month'::text, "Arbeitszeiten"."Datum"::timestamp with time zone));
|
||||
|
||||
-- ## Jährlich
|
||||
create view "Arbeitszeiten - Jahr"("Jahr", "Gesamtarbeitszeit", "Arbeitstage", "Überstunden") as
|
||||
select
|
||||
date_part('year'::text, "Arbeitszeiten"."Datum")::text as "Jahr",
|
||||
sum("Arbeitszeiten"."Arbeitszeit") as "Gesamtarbeitszeit",
|
||||
count("Arbeitszeiten"."Datum") as "Arbeitstage",
|
||||
sum("Arbeitszeiten"."Arbeitszeit") - count("Arbeitszeiten"."Datum") ::double precision * '08:00:00'::interval as "Überstunden"
|
||||
from "Arbeitszeiten"
|
||||
group by (date_part('year'::text, "Arbeitszeiten"."Datum"))
|
||||
order by (date_part('year'::text, "Arbeitszeiten"."Datum"));
|
||||
@@ -0,0 +1,36 @@
|
||||
@startuml
|
||||
|
||||
!define DOMAIN (M,#FFAAAA) Domain Model
|
||||
!define VIEW (V,DarkTurquoise) Domain Model - Ansicht
|
||||
|
||||
class Arbeitszeiten <<DOMAIN>> {
|
||||
Datum
|
||||
Arbeitszeit
|
||||
insert()
|
||||
list()
|
||||
}
|
||||
|
||||
class Arbeitszeiten-Ansicht <<VIEW>> {
|
||||
Gesamtarbeitszeit
|
||||
Arbeitstage
|
||||
Überstunden
|
||||
list()
|
||||
}
|
||||
|
||||
class Arbeitszeiten-Woche <<VIEW>> {
|
||||
Woche
|
||||
}
|
||||
|
||||
class Arbeitszeiten-Monat <<VIEW>> {
|
||||
Monat
|
||||
}
|
||||
|
||||
class Arbeitszeiten-Jahr <<VIEW>> {
|
||||
Jahr
|
||||
}
|
||||
|
||||
"Arbeitszeiten-Ansicht" <|-- "Arbeitszeiten-Woche"
|
||||
"Arbeitszeiten-Ansicht" <|-- "Arbeitszeiten-Monat"
|
||||
"Arbeitszeiten-Ansicht" <|-- "Arbeitszeiten-Jahr"
|
||||
|
||||
@enduml
|
||||
@@ -0,0 +1,37 @@
|
||||
@startuml
|
||||
|
||||
!define DOMAIN (M,#FFAAAA) Domain Model
|
||||
!define TABLE (T,DarkTurquoise) Physical Data Model
|
||||
!define VIEW (V,#AAFFAA) Model View
|
||||
!define AUTO Auto Generated
|
||||
!define ID_KEY id: INTEGER <<PK>> <<AUTO>> <<Surrogate>>
|
||||
|
||||
class Arbeitszeiten <<TABLE>> {
|
||||
Datum: DATE
|
||||
Arbeitszeit: INTERVAL
|
||||
}
|
||||
|
||||
class Arbeitszeiten-Ansicht <<VIEW>> {
|
||||
Gesamtarbeitszeit: INTERVAL
|
||||
Arbeitstage: INTEGER
|
||||
Überstunden: INTERVAL
|
||||
list()
|
||||
}
|
||||
|
||||
class Arbeitszeiten-Woche <<VIEW>> {
|
||||
Woche: TEXT
|
||||
}
|
||||
|
||||
class Arbeitszeiten-Monat <<VIEW>> {
|
||||
Monat: TEXT
|
||||
}
|
||||
|
||||
class Arbeitszeiten-Jahr <<VIEW>> {
|
||||
Jahr: TEXT
|
||||
}
|
||||
|
||||
"Arbeitszeiten-Ansicht" <|-- "Arbeitszeiten-Woche"
|
||||
"Arbeitszeiten-Ansicht" <|-- "Arbeitszeiten-Monat"
|
||||
"Arbeitszeiten-Ansicht" <|-- "Arbeitszeiten-Jahr"
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user