Structure
The MySQL and SQLite databases have the same tables and almost the same structure. For MySQL, the session tables will be in the database with a foreign key to the session entry, while for SQLite the session results will be stored in a separate database for each session.
NOTE: The table names are all lowercase versions of the headings above them.
Main
The following tables will be in the main database for SQLite.
Users
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
username |
Must be unique |
|
password |
Stored as BCrypt hash |
|
permissions |
Must be either "Developer", "Operator", or "Kiosk", invalid values will get Kiosk permissions |
|
active |
|
Sessions
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
name |
Must be unique |
|
user |
The user that started the session, references users.id |
|
project |
Path to the project file |
|
type |
A combination of "Correction", "Classification", "Segmentation", and "Regression", separated by " + " |
|
start |
Time when the session was started |
|
end |
Time when the session was ended |
|
frames |
The number of processed frames |
Fields
Custom fields defined by the developer.
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
session |
References sessions.id |
|
name |
|
|
value |
|
Log
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
message |
|
|
user |
The user to which the message relates to, references users.id |
|
session |
The session to which the message relates to, reference sessions.id |
|
timestamp |
|
Version
Internal, used to keep track of changes to the database structure, modifying it may make the database unusable for perClass Mira.
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
number |
Version number |
|
time |
|
Session
The following tables will be in the session specific database for SQLite.
NOTE: The SQLite session specific database also includes the sessions and fields tables like shown above. But it will only contain the rows of that specific session, where the session ID is matching the one in the main database.
Classes
The classes from the project the session was started with.
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
session |
References sessions.id |
|
index |
|
|
name |
|
|
color |
The color as ARGB integer |
|
foreground |
|
|
pixels |
The total amount of pixels of this class |
Variables
The regression variables from the project the session was started with.
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
session |
References sessions.id |
|
index |
|
|
name |
|
Objects
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
session |
References sessions.id |
|
index |
|
|
class |
References classes.id |
|
size |
Size in pixels |
|
x |
Bounding box X |
|
y |
Bounding box Y |
|
width |
Bounding box width |
|
height |
Bounding box height |
Regression
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
session |
References sessions.id |
|
object |
References objects.id |
|
variable |
References variables.id |
|
value |
|
Cubes
The cubes that were saved when an annotation was saved, or the saved images in image capturing mode.
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
session |
References sessions.id |
|
name |
|
Annotations
|
Column |
Notes |
|
id |
Auto-incrementing primary key |
|
session |
References sessions.id |
|
cube |
References cubes.id |
|
x |
Bounding box X, relative to cube |
|
y |
Bounding box Y, relative to cube |
|
width |
Bounding box width |
|
height |
Bounding box height |
|
text |
|