The naming scheme is that the Turbine specific tables are prefixed with "TURBINE_". This is to avoid name collisions with applications for common tables such as PERMISSION or ROLE and also to avoid name collisions with reserved keywords in differant databases.
TURBINE_USER -|------o-< TURBINE_USER_GROUP_ROLE TURBINE_ROLE -|------o-< TURBINE_USER_GROUP_ROLE TURBINE_GROUP -|------o-< TURBINE_USER_GROUP_ROLE TURBINE_ROLE -|------o-< TURBINE_ROLE_PERMISSION TURBINE_PERMISSION -|------o-< TURBINE_ROLE_PERMISSION
The data-types represented below are for the MySQL database. For other database specific data-types check the .sql scripts in the src/sql directory of the Turbine distribution.
| Column Name | Key | Data Type | Default Value | Null | Indexed | Comment |
|---|---|---|---|---|---|---|
| ID_TABLE_ID | Primary | INTEGER | NOT NULL | Yes | AUTOINCREMENT | |
| TABLE_NAME | Unique | VARCHAR(255) | NOT NULL | UNIQUE | ||
| NEXT_ID | INTEGER | NULL | ||||
| QUANTITY | INTEGER | NULL |
The ID_TABLE carries the information for the next ID number in the specified tables. This table is useful when the database being used has no data-type which carries out auto-increment operations.
| column name | key | data type | default value | null | indexed | comment |
|---|---|---|---|---|---|---|
| PERMISSION_ID | PRIMARY | INTEGER | AUTOINCREMENT | |||
| PERMISSION_NAME | VARCHAR(99) | NOT NULL | UNIQUE | |||
| OBJECTDATA | MEDIUMBLOB |
The TURBINE_PERMISSION table stores the lowest level of permissions allowed for a Turbine User.
| column name | key | data type | default value | null | indexed | comment |
|---|---|---|---|---|---|---|
| ROLE_ID | PRIMARY | INTEGER | AUTO_INCREMENT | |||
| ROLE_NAME | VARCHAR(99) | NOT NULL | UNIQUE | |||
| OBJECTDATA | MEDIUMBLOB |
The TURBINE_ROLE table links a Turbine User to a span of permissions. Potentially a Turbine User can have many roles within the system. In this case a role represents a descriptive word for a series of permissions or actions the Turbine User is able to undertake.
| column name | key | data type | default value | null | indexed | comment |
|---|---|---|---|---|---|---|
| GROUP_ID | PRIMARY | INTEGER | AUTOINCREMENT | |||
| GROUP_NAME | VARCHAR(99) | NOT NULL | UNIQUE | |||
| OBJECTDATA | MEDIUMBLOB |
The TURBINE_GROUP table allows for a series of roles and Turbine Users to be connected under a Group ID and hence Group Name. For instance there may be a group named Administrators with the necessary roles and permissions. There may also be many Administrators on the system. The Group table and it's relationship with the TURBINE_USER_GROUP_ROLE table maps this functionality.
| column name | key | data type | default value | null | indexed | comment |
|---|---|---|---|---|---|---|
| ROLE_ID | PRIMARY | INTEGER | NOT NULL | Yes | ||
| PERMISSION_ID | PRIMARY | INTEGER | NOT NULL | Yes |
The TURBINE_ROLE_PERMISSION table is a bridging table between TURBINE_ROLE and TURBINE_PERMISSION that allows a several differant roles to make use of the same permission.
| column name | key | data type | default value | null | indexed | comment |
|---|---|---|---|---|---|---|
| USER_ID | PRIMARY | INTEGER | ||||
| LOGIN_NAME | VARCHAR(32) | NOT NULL | UNIQUE | |||
| PASSWORD_VALUE | VARCHAR(32) | NOT NULL | ||||
| FIRST_NAME | VARCHAR(99) | NOT NULL | ||||
| LAST_NAME | VARCHAR(99) | NOT NULL | ||||
| VARCHAR(99) | NOT NULL | |||||
| CONFIRM_VALUE | VARCHAR(32) | NOT NULL | ||||
| MODIFIED | TIMESTAMP | |||||
| CREATED | DATETIME | |||||
| LAST_LOGIN | TIMESTAMP | |||||
| OBJECTDATA | MEDIUMBLOB |
The TURBINE_USER table describes the basic information on the user in the system.
| column name | key | data type | default value | null | indexed | comment |
|---|---|---|---|---|---|---|
| USER_ID | PRIMARY | INTEGER | ||||
| GROUP_ID | PRIMARY | INTEGER | ||||
| ROLE_ID | PRIMARY | INTEGER |
The TURBINE_USER_GROUP_ROLE describes what roles a given user has as a member of a given group.
| column name | key | data type | default value | null | indexed | comment |
|---|---|---|---|---|---|---|
| JOB_ID | PRIMARY | int(11) | NOT NULL | AUTO_INCREMENT | ||
| SECOND | INTEGER | -1 | NOT NULL | |||
| MINUTE | INTEGER | -1 | NOT NULL | |||
| HOUR | INTEGER | -1 | NOT NULL | |||
| WEEK_DAY | INTEGER | -1 | NOT NULL | |||
| DAY_OF_MONTH | INTEGER | -1 | NOT NULL | |||
| TASK | VARCHAR(99) | NOT NULL | ||||
| VARCHAR(99) | NULL | |||||
| PROPERTY | VARBINARY | NULL |