TimeCollect
your personal time keeper
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 | +----------------+------+---------+