69 lines
2.3 KiB
PL/PgSQL
69 lines
2.3 KiB
PL/PgSQL
-- ----------------------------
|
|
-- Table structure for anwesenheit
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS "anwesenheit";
|
|
CREATE TABLE "anwesenheit" (
|
|
"counter_id" bigserial PRIMARY KEY,
|
|
"timestamp" timestamp(6) DEFAULT CURRENT_TIMESTAMP,
|
|
"card_uid" varchar(255),
|
|
"check_in_out" int2,
|
|
"geraet_id" int2
|
|
);
|
|
COMMENT ON COLUMN "anwesenheit"."check_in_out" IS '1=Check In 2=Check Out , 3=Check in Manuell, 4=Check out manuell255=Automatic Check Out';
|
|
COMMENT ON COLUMN "anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for personal_daten
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS "personal_daten";
|
|
CREATE TABLE "personal_daten" (
|
|
"personal_nummer" int4 NOT NULL PRIMARY KEY,
|
|
"aktiv_beschaeftigt" bool,
|
|
"vorname" varchar(255),
|
|
"nachname" varchar(255),
|
|
"geburtsdatum" date,
|
|
"plz" varchar(255),
|
|
"adresse" varchar(255),
|
|
"geschlecht" int2,
|
|
"card_uid" varchar(255),
|
|
"hauptbeschaeftigungs_ort" int2,
|
|
"arbeitszeit_per_tag" float4,
|
|
"arbeitszeit_min_start" time(6),
|
|
"arbeitszeit_max_ende" time(6),
|
|
"vorgesetzter_pers_nr" int4
|
|
);
|
|
COMMENT ON COLUMN "personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers';
|
|
|
|
DROP TABLE IF EXISTS "user_password";
|
|
CREATE TABLE "user_password" (
|
|
"personal_nummer" int4 NOT NULL PRIMARY KEY,
|
|
"pass_hash" TEXT,
|
|
"zuletzt_geandert" timestamp(6) DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE OR REPLACE FUNCTION update_zuletzt_geandert()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
-- Nur wenn hash geändert wurde
|
|
IF NEW.pass_hash IS DISTINCT FROM OLD.pass_hash THEN
|
|
NEW.zuletzt_geandert = now();
|
|
END IF;
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER pass_hash_update
|
|
BEFORE UPDATE ON user_password
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION update_zuletzt_geandert();
|
|
|
|
-- Adds crypto extension
|
|
|
|
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|
|
|
|
|
-- Insert into personal_daten
|
|
|
|
INSERT INTO "personal_daten" ("personal_nummer", "aktiv_beschaeftigt", "vorname", "nachname", "geburtsdatum", "plz", "adresse", "geschlecht", "card_uid", "hauptbeschaeftigungs_ort", "arbeitszeit_per_tag", "arbeitszeit_min_start", "arbeitszeit_max_ende", "vorgesetzter_pers_nr") VALUES
|
|
(123, 't', 'Max', 'Mustermann', '2003-02-01', '08963', 'Altenburger Str. 44A', 1, 'acde-edca', 1, 7.5, '07:00:00', '20:00:00', 0);
|