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

Column NameKeyData TypeDefault ValueNullIndexedComment
ID_TABLE_IDPrimaryINTEGERNOT NULLYesAUTOINCREMENT
TABLE_NAMEUniqueVARCHAR(255)NOT NULLUNIQUE
NEXT_IDINTEGERNULL
QUANTITYINTEGERNULL

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.

TURBINE_PERMISSION

column namekeydata typedefault valuenullindexedcomment
PERMISSION_IDPRIMARYINTEGERAUTOINCREMENT
PERMISSION_NAMEVARCHAR(99)NOT NULLUNIQUE
OBJECTDATAMEDIUMBLOB

The TURBINE_PERMISSION table stores the lowest level of permissions allowed for a Turbine User.

TURBINE_ROLE

column namekeydata typedefault valuenullindexedcomment
ROLE_IDPRIMARYINTEGERAUTO_INCREMENT
ROLE_NAMEVARCHAR(99)NOT NULLUNIQUE
OBJECTDATAMEDIUMBLOB

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.

TURBINE_GROUP

column namekeydata typedefault valuenullindexedcomment
GROUP_IDPRIMARYINTEGERAUTOINCREMENT
GROUP_NAMEVARCHAR(99)NOT NULLUNIQUE
OBJECTDATAMEDIUMBLOB

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.

TURBINE_ROLE_PERMISSION

column namekeydata typedefault valuenullindexedcomment
ROLE_IDPRIMARYINTEGERNOT NULLYes
PERMISSION_IDPRIMARYINTEGERNOT NULLYes

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.

TURBINE_USER

column namekeydata typedefault valuenullindexedcomment
USER_IDPRIMARYINTEGER
LOGIN_NAMEVARCHAR(32)NOT NULLUNIQUE
PASSWORD_VALUEVARCHAR(32)NOT NULL
FIRST_NAMEVARCHAR(99)NOT NULL
LAST_NAMEVARCHAR(99)NOT NULL
EMAILVARCHAR(99)NOT NULL
CONFIRM_VALUEVARCHAR(32)NOT NULL
MODIFIEDTIMESTAMP
CREATEDDATETIME
LAST_LOGINTIMESTAMP
OBJECTDATAMEDIUMBLOB

The TURBINE_USER table describes the basic information on the user in the system.

TURBINE_USER_GROUP_ROLE

column namekeydata typedefault valuenullindexedcomment
USER_IDPRIMARYINTEGER
GROUP_IDPRIMARYINTEGER
ROLE_IDPRIMARYINTEGER

The TURBINE_USER_GROUP_ROLE describes what roles a given user has as a member of a given group.

TURBINE_SCHEDULED_JOB

column namekeydata typedefault valuenullindexedcomment
JOB_IDPRIMARYint(11)NOT NULLAUTO_INCREMENT
SECONDINTEGER-1NOT NULL
MINUTEINTEGER-1NOT NULL
HOURINTEGER-1NOT NULL
WEEK_DAYINTEGER-1NOT NULL
DAY_OF_MONTHINTEGER-1NOT NULL
TASKVARCHAR(99)NOT NULL
EMAILVARCHAR(99)NULL
PROPERTYVARBINARYNULL