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.
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.
The TURBINE_PERMISSION table stores the lowest level of permissions allowed for a Turbine User.
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.
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.
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.
The TURBINE_USER table describes the basic information on the user in the system.
The TURBINE_USER_GROUP_ROLE describes what roles a given user has as a member of a given group.