tc-logo.png

Datenbank-Schema

TimeCollect speichert die Zeiterfassungsdaten in drei Tabellen. Das Prefix '_6' in den Tabellennamen gibt die Schema-Version an. Bei einem Upgrade von TimeCollect, zu einer Version mit geändertem Datenbank-Schema werden automatisch neue Tabellen angelegt und die bestehenden Daten in das neue Format migriert. Auf diese Weise ist eine sichere Schema-Evolution möglich, die Datenverlust bei der Migration ausschließt.

Tabelle Activity

mysql> describe activity_6;
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| start       | datetime      | NO   | PRI | NULL    |       |
| stop        | datetime      | NO   |     | NULL    |       |
| ticket      | int(11)       | YES  |     | NULL    |       |
| description | varchar(1024) | NO   |     | NULL    |       |
+-------------+---------------+------+-----+---------+-------+


Bedeutung der Spalten

start
Zeitpunkt, zu dem die Aktivität begonnen wurde.
stop
Zeitpunkt, zu dem die Aktivität beendet wurde.
ticket
Interner Identifier des Tickets in der Tabelle ticket, das die Aktivität beschreibt.
description
Detail-Beschreibung der Aktivität. Hier kann eine vom Ticket unabhängige Beschreibung des aktuellen Arbeitsschritts angegeben werden.

Tabelle Ticket

Die Tabelle ticket speichert alle Tickets, die entweder lokal in TimeCollect angelegt wurde, oder von einem externen Ticketsystem bezogen wurden.

mysql> describe ticket_6;
+-----------+---------------+------+-----+---------+-------+
| Field     | Type          | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| id        | int(11)       | NO   | PRI | NULL    |       |
| system    | smallint(6)   | YES  |     | NULL    |       |
| rid       | int(11)       | YES  |     | NULL    |       |
| mnemonic  | varchar(254)  | NO   |     | NULL    |       |
| type      | varchar(254)  | NO   |     | NULL    |       |
| component | varchar(254)  | NO   |     | NULL    |       |
| state     | varchar(254)  | NO   |     | NULL    |       |
| title     | varchar(1024) | NO   |     | NULL    |       |
| lc        | smallint(6)   | NO   |     | NULL    |       |
+-----------+---------------+------+-----+---------+-------+

Bedeutung der Spalten

id
Ein fortlaufender interner Identifier für das Ticket. Dieser Identifier wird benutzt, um Tickets aus der Tabelle activity zu referenzieren.
system
Ein fortlaufender Identifier für das externe Ticketsystem, aus dem das Ticket bezogen wurde. Der Wert is NULL, wenn es sich um ein lokal in TimeCollect angelegtes Ticket handelt. Der Wert wird als Referenz aus der TimeCollect-Konfiguration benutzt. Dort finden sich die Zugangsdaten zum externen System. Aktuell wird nur ein einzelnes Ticketsystem unterstützt. Daher ist der Wert immer entweder NULL, oder 1.
rid
Remote-Identifier des Tickets. Ticketnummer des Tickets im externen Ticketsystem, wenn es sich nicht um ein lokales Ticket handelt. Bei lokalen Tickets ist der Wert NULL.
mnemonic
In der Ticket-Administation pflegbares Kürzel, mit dem ein häufig verwendetes Ticket schnell
type
Der Tickettyp aus dem externen Ticketsystem, oder direkt eingegeben bei lokalen Tickets. Z.B. "bug", "enhancement".
component
Der Komponente, welche das Ticket betrifft. Aus dem externen Ticketsystem bezogen, oder direkt eingegeben bei lokalen Tickets.
state
Der Ticketzustand des externen Ticketsystems. Z.B. "new", "assigned", "accepted", "closed". Leer bei lokalen Tickets.
title
Der Titel des Tickets.
lc
Der interne Life-Cycle-Status des Tickets. Siehe unten.

Life-Cycle-Status

Der interne Life-Cycle-Status des Tickets kann die folgenden Werte annehmen:

INACTIVE
Ticket wird potentiell von einer Aktivität in der Tabelle Activity referenziert, ist aber nicht mehr aktiv.
DROPPED
Das Ticket wird von der aktuellen Trac-Query gefunden, soll aber nicht in der Liste der aktiven Tickets im Tray-Menü angezeigt werden.
MATCHED
Das Ticket wird von der aktuellen Trac-Query gefunden und soll als mögliche Auswahl im Tray-Menü angezeigt werden.
SELECTED
Das Ticket wurde über Ctrl-Alt-F explizit ausgewählt. Es soll als mögliche Auswahl im Tray-Menü angezeigt werden, auch wenn es von der aktuellen Trac-Query nicht gefunden wird.

Tabelle Property

In der Tabelle property wird u.a. der aktuelle Aktivitätszustand gespeichert. Erfasst TimeCollect gerade Zeit, hat die Eigenschaft active den Wert 1, sonst 0.

mysql> describe property_6;
+---------+---------------+------+-----+---------+-------+
| Field   | Type          | Null | Key | Default | Extra |
+---------+---------------+------+-----+---------+-------+
| name    | varchar(255)  | NO   | PRI | NULL    |       |
| vint    | bigint(20)    | YES  |     | NULL    |       |
| vstring | varchar(4096) | YES  |     | NULL    |       |
+---------+---------------+------+-----+---------+-------+

Alle in der Tabelle property gespeicherten Eigenschaften:

mysql> select * from property_6;
+----------------+------+---------+
| name           | vint | vstring |
+----------------+------+---------+
| active         |    1 | NULL    |
| schema.version |    6 | NULL    |
+----------------+------+---------+