Turbine

Essentials

Models

Get Involved

Documentation

Database

Turbine Schema

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_PERMISSION
  • TURBINE_ROLE
  • TURBINE_GROUP
  • TURBINE_ROLE_PERMISSION
  • TURBINE_USER
  • TURBINE_USER_GROUP_ROLE
  • TURBINE_SCHEDULED_JOB
  • ID_TABLE

Relationships

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

Table Schemas

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.

ID_TABLE

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
ID_TABLE_ID Primary INTEGER   NOT NULL Yes AUTOINCREMENT
TABLE_NAME Unique VARCHAR(255)   NOT NULL   UNIQUE
NEXT_ID   INTEGER   NULL    
QUANTITY   INTEGER   NULL    

TURBINE_PERMISSION

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
PERMISSION_ID PRIMARY INTEGER       AUTOINCREMENT
PERMISSION_NAME   VARCHAR(99)   NOT NULL   UNIQUE
OBJECTDATA   MEDIUMBLOB        

TURBINE_ROLE

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
ROLE_ID PRIMARY INTEGER       AUTO_INCREMENT
ROLE_NAME   VARCHAR(99)   NOT NULL   UNIQUE
OBJECTDATA   MEDIUMBLOB        

TURBINE_GROUP

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
GROUP_ID PRIMARY INTEGER       AUTOINCREMENT
GROUP_NAME   VARCHAR(99)   NOT NULL   UNIQUE
OBJECTDATA   MEDIUMBLOB        

TURBINE_ROLE_PERMISSION

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
ROLE_ID PRIMARY INTEGER   NOT NULL Yes  
PERMISSION_ID PRIMARY INTEGER   NOT NULL Yes  

TURBINE_USER

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        
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    
EMAIL   VARCHAR(99)   NOT NULL    
CONFIRM_VALUE   VARCHAR(32)   NOT NULL    
MODIFIED   TIMESTAMP        
CREATED   DATETIME        
LAST_LOGIN   TIMESTAMP        
OBJECTDATA   MEDIUMBLOB        

TURBINE_USER_GROUP_ROLE

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
USER_ID PRIMARY INTEGER        
GROUP_ID PRIMARY INTEGER        
ROLE_ID PRIMARY INTEGER        

TURBINE_SCHEDULED_JOB

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    
EMAIL   VARCHAR(99)   NULL    
PROPERTY   VARBINARY   NULL    

Copyright © 1999-2001, Apache Software Foundation