AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabellenaufbau

Ein Thema von NoName1 · begonnen am 28. Mär 2019 · letzter Beitrag vom 1. Apr 2019
 
NoName1

Registriert seit: 8. Mär 2018
196 Beiträge
 
Delphi 11 Alexandria
 
#1

Tabellenaufbau

  Alt 28. Mär 2019, 17:57
Datenbank: interbase • Version: egal • Zugriff über: egal
Guten Tag,
ich möchte für meine kleine, spezielle Vereinssoftware eine Zugriffshistory anlegen.
Dies wird nach der Datenschutzgrundverordnung verlangt.
In dieser History soll abgelegt werden:
Wer hat sich wann am Programm angemeldet und was hat er in welchem Programmteil getan.
Auch soll eine Auswertung in Form eines Druckes enthalten sein,
a) über alle Aktivitäten und auch
b) speziell für einen Programmnutzer.
Dazu dachte ich mir, das ich 3 Tabellen benötigen werden.
Da sehr wahrscheinlich sehr viele Zugriffe über das Jahr verteilt stattfinden werden,
möchte ich keine Generatoren als PrimaryKey verwenden, sondern den Hauptschlüssel der Tabellen über 2 Spalten erzeugen.
So wie ich es im Codebeispiel zeige, kann es nicht funktionieren. Ich muss ja die Tabellen mit einander über die Hauptschlüssel
verbinden und dies ist in meinem Beispiel sehr unglücklich gelöst.

Deshalb meine Fragen:
a) Wie würdert Ihr es lösen?
b) Wie würdet Ihr den Hauptschlüssel aufbauen?

1. Tabelle Anmeldung
2. Tabelle Protokolle
3. Tabelle Abmeldung

Delphi-Quellcode:
dtmdMain.bpsql.Close;
    dtmdMain.bpsql.SQL.Clear;
    dtmdMain.bpsql.SQL.Add('create table ProtAnmeldung ( '
      + 'angemeldetam timestamp not null, '
      + 'adressid integer not null, '
      + 'brdname do62 )');
    dtmdMain.bpsql.Prepare;
    dtmdMain.bpsql.ExecQuery;

    dtmdMain.bpsql.Close;
    dtmdMain.bpsql.SQL.Clear;
    dtmdMain.bpsql.SQL.Add('alter table protanmeldung add primary key (angemeldetam, adressid) ');
    dtmdMain.bpsql.Prepare;
    dtmdMain.bpsql.ExecQuery;

    dtmdMain.bpsql.Close;
    dtmdMain.bpsql.SQL.Clear;
    dtmdMain.bpsql.SQL.Add('create table protokolle ( '
      + 'loprotokolleid timestamp not null, '
      + 'adressid integer not null, '
      + 'menuename do50, '
      + 'protokoll blob )');
    dtmdMain.bpsql.Prepare;
    dtmdMain.bpsql.ExecQuery;

    dtmdMain.bpsql.Close;
    dtmdMain.bpsql.SQL.Clear;
    dtmdMain.bpsql.SQL.Add('alter table protokolle add primary key (loprotokolleid, adressid) ');
    dtmdMain.bpsql.Prepare;
    dtmdMain.bpsql.ExecQuery;

    dtmdMain.bpsql.Close;
    dtmdMain.bpsql.SQL.Clear;
    dtmdMain.bpsql.SQL.Add('create table protabmeldung ( '
      + 'abgemeldetam timestamp not null, '
      + 'adressid integer not null )');
    dtmdMain.bpsql.Prepare;
    dtmdMain.bpsql.ExecQuery;

    dtmdMain.bpsql.Close;
    dtmdMain.bpsql.SQL.Clear;
    dtmdMain.bpsql.SQL.Add('alter table protabmeldung add primary key (abgemeldetam, adressid) ');
    dtmdMain.bpsql.Prepare;
    dtmdMain.bpsql.ExecQuery;
Vielen Dank für Eure fachmännischen Hilfen im Voraus.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz