Database Schema

From OpenSim

Jump to: navigation, search

This information is extracted from a system using NHibernate with a PostgreSQL database. Other databases should be similar or identical.

The information here is organized by table. Under each table, the various fields are listed and described. Any corrections or additional information are welcome.

Contents

assets

The assets database. It contains the following fields:

  • id - character varying(36) NOT NULL
  • type - smallint - This is an integer representation of the type enumeration. Valid values are (need help checking and filling these in):
    • 0 - Textures
    • 1 - Sound
    • 2 - ??
    • 3 - Landmark
    • 4 - ??
    • 5 - Clothing
    • 6 - Primitive
    • 7 - Note
    • 8 - ??
    • 9 - ??
    • 10 - Script
    • 11 - ??
    • 12 - ??
    • 13 - Body Part
    • 14 - ??
    • 15 - ??
    • 16 - ??
    • 17 - ??
    • 18 - ??
    • 19 - ??
    • 20 - ??
    • 21 - Gesture
  • name - character varying(64)
  • description - character varying(64)
  • local - boolean
  • temporary - boolean
  • data - bytea

estatebans

Ban list for each estate

  • estateid - integer NOT NULL (not UUID?)
  • arrayindex - integer NOT NULL
  • banneduserid - character varying(36) NOT NULL
  • bannedhostaddress - character varying(16) NOT NULL (may have to change for IPv6 support)
  • bannedhostipmask - character varying(16) NOT NULL (may have to change for IPv6 support)
  • bannedhostnamemask - character varying(16) NOT NULL

estategroups

Not sure what this table is for. Groups that own estates?

  • estateid - integer NOT NULL
  • groupid - character varying(36) NOT NULL
  • arrayindex - integer NOT NULL

estatemanagers

Not sure what this table is for. Managers of estates?

  • estateid - integer NOT NULL
  • managerid - character varying(36) NOT NULL
  • arrayindex - integer NOT NULL

estateregionlink

Links estates to regions

  • estateregionlinkid - character varying(36) NOT NULL
  • estateid - integer
  • regionid - character varying(36)

estatesettings

Settings for each estate

  • estateid - integer NOT NULL
  • parentestateid - integer
  • estateownerid - character varying(36)
  • name - character varying(64)
  • redirectgridx - integer
  • redirectgridy - integer
  • billablefactor - double precision
  • pricepermeter - integer
  • sunposition - double precision
  • useglobaltime - boolean
  • fixedsun - boolean
  • allowvoice - boolean
  • allowdirectteleport - boolean
  • resethomeonteleport - boolean
  • publicaccess - boolean
  • denyanonymous - boolean
  • denyidentified - boolean
  • denytransacted - boolean
  • denyminors - boolean
  • blockdwell - boolean
  • estateskipscripts - boolean
  • taxfree - boolean
  • abuseemailtoestateowner - boolean
  • abuseemail - character varying(255)

I'm not sure what happens if both denyanonymous and denyidentified are set true. Perhaps everyone is denied.

estateusers

Users of an estate?

  • estateid - integer NOT NULL
  • userid - character varying(36) NOT NULL
  • arrayindex - integer NOT NULL

inventoryfolders

Folders for your inventory items.

  • id - character varying(36) NOT NULL
  • type - smallint - This may be the same enumeration as the one used in assets to identify what assets can be stored in the folder.
  • version - integer
  • parentid - character varying(36)
  • owner - character varying(36)
  • name - character varying(64)

inventoryitems

Items contained in your inventory

  • id character varying(36) NOT NULL
  • invtype - integer
  • assettype - integer
  • assetid - character varying(36)
  • folder - character varying(36)
  • owner - character varying(36)
  • creator - character varying(36)
  • name - character varying(64)
  • description - character varying(64)
  • nextpermissions - integer
  • currentpermissions - integer
  • basepermissions - integer
  • everyonepermissions - integer
  • groupid - character varying(36)
  • groupowned - boolean
  • saleprice - integer
  • saletype - smallint
  • flags - integer
  • creationdate - integer

migrations

Not sure what this is for. It may be for storing the version of the database schema used.

  • name - character varying(100)
  • version - integer

primitems

Primitive items

  • itemid - character varying(36) NOT NULL
  • groupid - character varying(36)
  • primid - character varying(36)
  • parentfolderid - character varying(36)
  • assetid - character varying(36)
  • ownerid - character varying(36)
  • lastownerid - character varying(36)
  • creatorid - character varying(36)
  • creationdate - integer
  • type - integer
  • invtype integer
  • name - character varying(255)
  • description - character varying(255)
  • nextpermissions - integer
  • currentpermissions - integer
  • basepermissions - integer
  • everyonepermissions - integer
  • grouppermissions - integer
  • flags - integer

prims

Data on each prim. There's a lot of stuff in here.

  • uuid - character varying(36) NOT NULL
  • regionid - character varying(36)
  • groupid - character varying(36)
  • parentid - integer
  • parentuuid - character varying(36)
  • ownerid - character varying(36)
  • lastownerid - character varying(36)
  • creatorid - character varying(36)
  • creationdate - integer
  • linknum - integer
  • name - character varying(255)
  • text - character varying(255)
  • description - character varying(255)
  • sitname - character varying(255)
  • touchname - character varying(255)
  • objectflags - integer
  • ownermask - integer
  • nextownermask - integer
  • groupmask - integer
  • everyonemask - integer
  • basemask - integer
  • material - smallint
  • scriptaccesspin - integer
  • textureanimation - bytea
  • particlesystem - bytea
  • clickaction - smallint
  • color - integer
  • positionx - double precision
  • positiony - double precision
  • positionz - double precision
  • grouppositionx - double precision
  • grouppositiony - double precision
  • grouppositionz - double precision
  • velocityx - double precision
  • velocityy - double precision
  • velocityz - double precision
  • angularvelocityx - double precision
  • angularvelocityy - double precision
  • angularvelocityz - double precision
  • accelerationx - double precision
  • accelerationy - double precision
  • accelerationz - double precision
  • rotationx - double precision
  • rotationy - double precision
  • rotationz - double precision
  • rotationw - double precision
  • sittargetoffsetx - double precision
  • sittargetoffsety - double precision
  • sittargetoffsetz - double precision
  • sittargetorientw - double precision
  • sittargetorientx - double precision
  • sittargetorienty - double precision
  • sittargetorientz - double precision
  • shape - integer
  • scalex - double precision
  • scaley - double precision
  • scalez - double precision
  • pcode - integer
  • pathbegin - integer
  • pathend - integer
  • pathscalex - integer
  • pathscaley - integer
  • pathshearx - integer
  • pathsheary - integer
  • pathskew - smallint
  • pathcurve - integer
  • pathradiusoffset - smallint
  • pathrevolutions - integer
  • pathtaperx - smallint
  • pathtapery - smallint
  • pathtwist - smallint
  • profilebegin - integer
  • profileend - integer
  • profilecurve - integer
  • profilehollow - integer
  • state - integer
  • texture - bytea
  • extraparams - bytea

regions

Information on regions?

  • regionid - character varying(36) NOT NULL
  • ownerid - character varying(36)
  • originid - character varying(36)
  • regionhandle - bigint
  • regionname - character varying(32)
  • regionrecvkey - character varying(128)
  • regionsendkey - character varying(128)
  • regionsecret - character varying(128)
  • regiondatauri - character varying(255)
  • serverip - character varying(64)
  • serverport - integer
  • serveruri - character varying(255)
  • regionlocx - integer
  • regionlocy - integer
  • regionlocz - integer
  • eastoverridehandle - bigint
  • westoverridehandle - bigint
  • southoverridehandle - bigint
  • northoverridehandle - bigint
  • regionasseturi - character varying(255)
  • regionassetrecvkey - character varying(128)
  • regionassetsendkey - character varying(128)
  • regionuseruri - character varying(255)
  • regionuserrecvkey - character varying(128)
  • regionusersendkey - character varying(128)
  • regionmaptextureid - character varying(36)
  • serverhttpport - integer
  • serverremotingport - integer

regionsettings

Settings for each region.

  • regionid - character varying(36) NOT NULL
  • blockterraform - boolean
  • blockfly - boolean
  • allowdamage - boolean
  • restrictpushing - boolean
  • allowlandresell - boolean
  • allowlandjoindivide - boolean
  • blockshowinsearch - boolean
  • agentlimit - integer
  • objectbonus - double precision
  • maturity - integer
  • disablescripts - boolean
  • disablecollisions - boolean
  • disablephysics - boolean
  • terraintexture1 - character varying(36)
  • terraintexture2 - character varying(36)
  • terraintexture3 - character varying(36)
  • terraintexture4 - character varying(36)
  • elevation1nw - double precision
  • elevation2nw - double precision
  • elevation1ne - double precision
  • elevation2ne - double precision
  • elevation1se - double precision
  • elevation2se - double precision
  • elevation1sw - double precision
  • elevation2sw - double precision
  • waterheight - double precision
  • terrainraiselimit - double precision
  • terrainlowerlimit - double precision
  • useestatesun - boolean
  • sandbox - boolean
  • sunvectorx - double precision
  • sunvectory - double precision
  • sunvectorz - double precision
  • fixedsun - boolean
  • sunposition - double precision
  • covenant - character varying(36)

terrain

This looks fairly simple. I'm guessing that it contains the height map for each region.

  • regionid - character varying(36) NOT NULL
  • mapdata - bytea

useragents

Some user information.

  • profileid - character varying(36) NOT NULL
  • agentip - character varying(24)
  • agentport - integer
  • agentonline - boolean
  • sessionid - character varying(36)
  • securesessionid - character varying(36)
  • initialregion - character varying(255)
  • region - character varying(255)
  • logintime - integer
  • logouttime - integer
  • handle - bigint
  • positionx - double precision
  • positiony - double precision
  • positionz - double precision
  • lookatx - double precision
  • lookaty - double precision
  • lookatz - double precision

userappearances

Information for the appearance of each avatar. I'm not sure what the difference between the *assets and *items is.

  • owner - character varying(36) NOT NULL
  • bodyitem - character varying(36)
  • bodyasset - character varying(36)
  • skinitem - character varying(36)
  • skinasset - character varying(36)
  • hairitem - character varying(36)
  • hairasset - character varying(36)
  • eyesitem - character varying(36)
  • eyesasset - character varying(36)
  • shirtitem - character varying(36)
  • shirtasset - character varying(36)
  • pantsitem - character varying(36)
  • pantsasset - character varying(36)
  • shoesitem - character varying(36)
  • shoesasset - character varying(36)
  • socksitem - character varying(36)
  • socksasset - character varying(36)
  • jacketitem - character varying(36)
  • jacketasset - character varying(36)
  • glovesitem - character varying(36)
  • glovesasset - character varying(36)
  • undershirtitem - character varying(36)
  • undershirtasset - character varying(36)
  • underpantsitem - character varying(36)
  • underpantsasset - character varying(36)
  • skirtitem - character varying(36)
  • skirtasset - character varying(36)
  • texture - bytea
  • visualparams - bytea
  • serial - integer
  • avatarheight - double precision

userfriends

Friends of users.

  • userfriendid - character varying(36) NOT NULL
  • ownerid - character varying(36)
  • friendid - character varying(36)
  • friendpermissions - integer

userprofiles

User profile information.

  • id - character varying(36) NOT NULL
  • webloginkey - character varying(36)
  • firstname - character varying(32)
  • surname - character varying(32)
  • email - character varying(250)
  • passwordhash - character varying(32)
  • passwordsalt - character varying(32)
  • homeregionid - character varying(36)
  • homeregionx - integer
  • homeregiony - integer
  • homelocationx - double precision
  • homelocationy - double precision
  • homelocationz - double precision
  • homelookatx - double precision
  • homelookaty - double precision
  • homelookatz - double precision
  • created - integer
  • lastlogin - integer
  • userinventoryuri - character varying(255)
  • userasseturi - character varying(255)
  • image - character varying(36)
  • firstlifeimage - character varying(36)
  • abouttext - text
  • firstlifeabouttext - text
  • candomask - integer
  • wantdomask - integer
  • userflags - integer
  • godlevel - integer
  • customtype - character varying(32)
  • partner - character varying(36)
  • rootinventoryfolderid - character varying(36)
Personal tools