Difference between revisions of "Category:EVE Database"

From EVEmu Wiki
Jump to navigation Jump to search
(Created page with "= <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> = EVE needs a database running behind the scenes on the server to maintain and use all information...")
 
m (update status)
 
Line 1: Line 1:
 +
== NOTICE: ==
 +
This page needs to be updated for version 0.8.0 and above.
 +
 
= <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> =
 
= <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> =
  

Latest revision as of 14:09, 7 April 2021

NOTICE:

This page needs to be updated for version 0.8.0 and above.

The EVE Database

EVE needs a database running behind the scenes on the server to maintain and use all information needed for gameplay. CCP uses MSSQL to run their database but it is not free so EVEmu uses MySQL. Fortunately for us, many out of game tools use MySQL too so there are publicly available MySQL conversions of the CCP Static Data Dump that is released in MSSQL format. We primarily get these MySQL conversions from the EVE Developer Network - Static Data Dump History page. Instructions on how to build the database can be found on our Build_Database page.

EVEmu Database Tools

The EVEmu Database is quite extensive and difficult to navigate or work with, so the EVEmu team has developed some tools to use that make this job easier. There was a EVEmu_Control_Panel created to help make seeding the market, editing/deleting/adding in-game item types, creating/editing/deleting characters and accounts, etc adding asteroid fields and other features more convenient for developers wishing to populate their universe.

EVEmu Database Layout

[[File_Dbo_001.html|[[File:../images/thumb/7/72/Dbo_001.png/360px-Dbo_001.png|360x292px|Dbo 001.png]]]]

The Eve Online Database is extremely large and complex. The following is a visual representation of the public data CCP has released. This is based from an older version of the database and no longer applies to modern iterations. The EVEmu Database has more tables and more relationships than displayed here.

Download the relationships here: File:Dbo 002.pdf



Ideas for the Future

  • It would speed up DB queries quite a bit if we split the entity and entity_attributes tables into multiple pairs for each major object type in the game. For example, we could have a pair of these tables that only holds ships and drones called entity_ships and entity_ships_attributes. Another pair could exist for just POS structures called entity_structures and entity_structures_attributes. Here is a comprehensive, although probably incomplete, list of the different groups requiring their own pair of these two tables:
    • Characters and Clones
    • Ships and Drones
    • Modules and Charges
    • Asteroids
    • Celestial objects
    • Structures
    • Deployables
    • Cargo Containers
    • Stations (player and NPC)
    • Corp items

Possible Structure layout

entity_ships entity_ship_attributes

  • Ships 6
  • Drones 18


entity_items entity_items_attributes

  • material 4
  • blueprint 9
  • ancient relics 34
  • reaction 24
  • commodity 17


entity_modules entity_modules_attributes

  • module 7
  • charges 8
  • subsystem 32
  • decrypters 35


entity_structure entity_structure_attributes

  • structure 23
  • deployable 22
  • station 3

The addition of a table for redeemable items. Items that are 'gifted' to players that may be allocated to a character prior to character selection (but may also be done in game) Fields may include (but not limited to)

AccountID, typeID, Quantity, Timegiven, TimeStop

AccountID - The account with the item(s) in question

typeID - the typeID of the item

Quantity - The quantity avaliable

Timegiven - The time the item(s) were given to the player

TimeElapse- The time the item(s) will be removed from redemption.


TODO: Describe each table that is added by EVEmu, its fields and what it's used for

  • accountApi
  • dgmEffectsInfo
  • dgmEffectsActions
  • dgmShipBonusModifiers
  • dgmSkillBonusModifiers
  • dgmImplantBonusModifiers



EVEmu Database Tables

This page would be huge if all tables were listed and their details of purpose, use, and fields were explained on this page, so for now, only the most important tables critical for server operations will be explained here.

Important Interesting Tables

  • account - this table lists each account (not characters, see the entity table below), their user id and password (encrypted)
  • character_ - this table lists each character in the game, their wallet balance, the account that owns them, bounty, sec. status, corp ID, all roles info, and the character's toon creation data (hair, clothes, eyes, morph, etc.)
  • chrskillqueue - this table stores all characters' skill queue contents; there are fields that indicate skill type and order in the queue as well as the character ID that owns that skill queue entry
  • chrstandings - this table stores standings from characters to other characters
  • crpcharshares - this table stores the amount of corporation shares that each character owns in their respective corporation(s)
  • entity - this table lists all npc and real characters and their location. more importantly, it lists ALL characters' asset items everywhere in the game, their location, owner, quantities, and a few flags
  • entity_attributes - this table lists attributes of characters, i.e. charisma (id=164), intelligence (id=165), memory (id=166), perception (id=167), will power (id=168)
  • evemail - this table lists every evemail sent/received in-game, every detail is contained here except the contents of the message, that is stored in the evemaildetails table
  • evemaildetails - this table lists every evemail's message contents, the rest of the details of each evemail are stored in the evemail table
  • market_journal - this table contains all the data that is shown in the player's Journal tab of the Wallet (player and npc transactions)
  • market_orders - this table contains all the orders that the players have made inside the eve universe
  • market_transactions - this table contains all the transaction data that players make inside the eve market (player transactions)
  • npcstandings - this table stores standings from npc's to characters
  • roiddistribution - this table hold the asteroid belt makeup data, specifically what roids are to be spawn and in what frequency
  • spawnbounds -
  • spawngroupentities -
  • spawngroups -
  • spawns -

Complete Table Listing

Please keep the same format if you edit this page

Table Field Name 1 Table Field Name 2 Table Field Name 3
Field 1 Description Field 2 Description Field 3 Description
Link to Table Links to Table Links to Table
  • Note, not all fields will link to another table.



Accounts

This is a simple table. It holds you account information.

|| accountID || accountName || password || role || online ||

|| this ties a number to your account, NO two accounts have the same number || this is the name you choose for your account, ie the login name || this is your password, it shows up encrypted in the database || this is the role of the account, ex: Admin, GM, normal Player. || simple, 0 means you are not online, 1 means you are online ||


See here for details on how the role field is calculated

Accountid

This ties a number to your account, No 2 accounts have the same number.

|| accountName || Password || Role || Online ||

||This is the name you choose for your account || This is your password, it shows up encrypted in the database. || This is the role of the account, ex: Admin, GM, normal Player. A number represents them. 2 = Normal Player 4294967231 = Super admin || Simple, 0 means you are not online, 1 means you are online. ||



Agtagents

This has basic information about agents.


|| agentID || divisionID || corporationID || level || quality || agentTypeID ||

|| Numerical Id for the agent || This is what division the agent works for, IE: Security, R%D... || Numerical ID for the corporation the agent is for || Pretty simple, Level of the agent || Quality of the agent || Type of agent you are dealing with, See agtagenttypes table for more info ||

agtagenttypes

This has basic structure for the types of agents.

agenttypeId

Numberical value id, this is referenced with next table agentType agentType - This is what each agent is, look below at table I have created, it is pretty self explanatory.

|| agentTypeID || agentType ||

|| 1 || Nonagent ||

|| 2 || Basicagent ||

|| 3 || Tutorialagent ||

|| 4 || Researchagent ||

|| 5 || CONCORDagent ||

|| 6 || Genericstorylinesissionagent ||

|| 7 || Storylinemissionagent ||

|| 8 || Eventmissionagent ||

|| 9 || Factionalwarfareagent ||

|| 10 || Epicarcagent ||

Agtconfig

Refers agentId to level and quality

Agtmissiongroups

|| corporationID || divisionID || level || = missionID ||



agentmissions

|| missionID || missionName || missionLevel || missionTypeId || importantMission ||



agtmissiontypes

|| missionTypeID || missionTypeName ||



Agtoffergroups

|| corporationID || divisionID || level || offered ||

agtofferrequired

|| offerID || typeID || quantity ||

agtofferreward

|| offerID || typeID || quantity ||

agtoffers

|| offerID || offerName || offerLevel || loyaltyPoints || requiredISK || rewardISK || offerText || offerAcceptedText ||

agtresearchagents

|| agentID || typeID ||

alliance_shortnames

billspayable

|| billID || billTypeId || debtorID || creditorID || amount || dueDateTime || interest || externalID || paid || externalID2 ||



billsreceivable

|| billID || billTypeId || debtorID || creditorID || amount || dueDateTime || interest || externalID || paid || externalID2 ||

billtypes

Simple, Links billtypeID to billTypeName , Number value to a Name

|| billTypeID || billTypeName ||

|| 1 || Market Fine ||

|| 2 || Rental Bill ||

|| 3 || Broker Bill ||

|| 4 || War Bill ||

|| 5 || Alliance maintenance Bill ||



Bloodlinetypes

links bloodlineID to TypeID

Bookmarks

this is where bookmarks in space should be created.



cachelocations

cacheowners

channelchars

channelmods

channels

channeltypes

character_

characterstatic

chraccessories

chrancestries

|| ancestryID || ancestryName || bloodlineID || description || perception || willpower || charisma || memory || intelligence || graphicID || shortDescription ||

|| Unique ID of ancestry, Should be primary Key || Name of ancestry || Bloodline in which ancestry belongs to. || Description of the Ancestry || Atrribute bonus for the ancestry - Perception || Atrribute bonus for the ancestry - Willpower || Atrribute bonus for the ancestry - Charisma || Atrribute bonus for the ancestry - Memory || Atrribute bonus for the ancestry - Intelligence || Icon for this ancestry || Short Description of ancestry ||



chrapplications

chrattributes

The attributeID's for the characters attributes.

chrbackgrounds

chrbeards

chrblaccessories

chrblbackgrounds

chrblbeards

chrblcostumes

chrbldecos

chrbleyebrows

chrbleyes

chrblhairs

chrbllights

chrbllipsticks

chrblmakeups

chrbloodlines

chrblskins

chrcareers

chrcareerspecialities

chrcostumes

chrdecos

chrdepartments

chremployment

chreyebrows

chreyes

chrfactions

chrhairs

chrlights

chrlipsticks

chrmakeups

chrmissionstate

chrnotes

chrnpcstandings

chroffers

chrownernote

chrraces

chrraceskills

chrschoolagents

chrschools

List of starting schools for new characters.

chrskillqueue

chrskins

chrstandings

This is the relationship between the player and the NPC.

corporation

Lists corporations and basic information.

corporationstatic

couriermissions

crpactivities

crpcharshares

crpnpccorporationdivisions

crpnpccorporationresearchfields

crpnpccorporations

crpnpccorporationtrades

crpnpcdivisions

crpnpctickernames

crpoffices

crtcategories

|| categoryID || description || catagoryName ||

|| Unique ID of this catagory || Description of the catagory || Name of the catagory ||



crtcertificates

List of all certificates

|| certificateID || catagoryID || classID || grade || corpID || iconID || description ||

|| Unique ID of the certificate. Should be primary Key || Catagory of the Certificate || Class of the certificate || Grade of the certificate. 1=basic, 2=standard, 3=improved, 5=elite, They cant count, they forgot 4. || Corporation of the certificate || Icon of the certificate || Description of the Certificate ||

|| || crtCatergories.categoryID || crtClasses.classID || || crpNPCCorporations.corporationID || || ||



crtclasses

|| classID || description || className ||

|| Unique ID of the class, should be primary key || Description of the class. || Name of the Class. ||



crtrecommendations

|| recommendationID || shipTypeID || certificateID || recommendationLevel ||

|| Unique ID of recommendation, Should be primary key || typeID of ship || CertificateID of recommendation. || ||

|| || invTypes.typeID || crtCertificates.certificateID || ||



crtrelationships

|| relationshipID || parentID || parentTypeID || parentLevel || childID ||

|| Unique ID of the relationship, Should be primary Key || CertificateID of the certificate || Links to skill in item table || Name of the class || CertificateID of certificates requiring the certificate ||

|| || crtCertificates.certificateID || invTypes.typeID || || crtCertificates.certificateID ||



dgmattributecategories

dgmattributetypes

dgmeffects

dgmEffectsInfo

Used with the Module Manager in its Effects Processing.

dgmEffectsInfo table Fields
effectID targetAttributeID sourceAttributeID calculationTypeID reverseCalculationTypeID

dgmEffectsActions

Used with the Module Manager in its Effects Processing.

dgmEffectsActions table Fields
effectID effectAppliedInState effectAppliedTo effectApplicationType targetEquipmentType targetGroupIDs stackingPenaltyApplied nullifyOnlineEffect nullifiedOnlineEffectID

dgmShipBonusModifiers

Used with the Module Manager in its Effects Processing.

dgmShipBonusModifiers table Fields
effectID attributeSkillID attributeSkillLevel sourceAttributeID targetAttributeID calculationTypeID reverseCalculationTypeID effectAppliedTo targetEquipmentType targetGroupIDs

Used with the Module Manager in its Type Attribute Modifiers Processing.



dgmSkillBonusModifiers

Used with the Module Manager in its Effects Processing.

dgmSkillBonusModifiers table Fields
effectID sourceAttributeID targetAttributeID calculationTypeID reverseCalculationTypeID effectAppliedTo targetEquipmentType targetGroupIDs

Used with the Module Manager in its Type Attribute Modifiers Processing.

dgmtypeattributes

dgmtypeeffects

dronestate

entity

This details each individual thing in the game. From individual stack of items to planets to ships and npcs to attached modules and ammo. Characters and implants. It is all listed here. Refers to the invtypes, stastations, mapsolarsystems and invflags tables.

entity_attributes

eveconstants

evegraphics

evemail

evemaildetails

evemailmimetype

evemessages

evenames

everoles

evestaticlocations

evestaticowners

eveunits

factionraces

intro

invblueprints

invblueprinttypes

invcategories

invcontrabandtypes

invcontroltowerresourcepurposes

invcontroltowerresources

invflags

invgroups

invmarketgroups

invmetagroups

invmetatypes

invtypematerials

Details the refining/reprocessing/manufacturing of items. Refers to the invtypes table.

invshiptypes

invtypereactions

invtypes

Details basic information about game items, ships and other objects. Several tables refer to here. If you are interested in making new modules or ships you should start here.

invtypestowrecks

Links the destroyed ships or structures to wrecks. It only refers to invtypes.

invuniquenames

languages

Languages used in EVE

liveupdates

locationscenes

lprequireditems

The items required to purchase (if applicable) at the LP Store. It has relationships to invtypes and lpstore.

lpstore

What itemTypes appear listed in the store and where. It has relationships to corporation, invtypes and Lprequireditems.

lpverified

Checks for the LPstore

maillabel

mailmessage

mapcelestialstatistics

mapconstellationjumps

mapconstellations

mapdenormalize

mapjumps

maplandmarks

maplocationwormholeclasses

mapregionjumps

mapregions

mapsolarsystemjumps

mapsolarsystems

mapuniverse

market_history_old

market_journal

market_keymap

market_orders

This table is used to display market orders. It has relationships to invtypes, character_, mapregions, stastations and mapsolarsystems.

market_reftypes

market_transactions

npcstandings

ramactivities

ramassemblylines

ramassemblylinestationcostlogs

ramassemblylinestations

ramassemblylinetypedetailpercategory

ramassemblylinetypedetailpergroup

ramassemblylinetypes

ramcompletedstatuses

raminstallationtypedefaultcontents

ramjobs

rentalinfo

roiddistribution

spawnbounds

spawngroupentries

Table that controls the chance to spawn a particular NPC for a corporation. Links to corporation, invtypes, spawngroupentries and spawns.

spawngroups

Links individual spawns together. Links to spawngroupentries and spawns.

spawns

srvstatus

staoperations

staoperationservices

staservices

stastations

Station information. Refers to the corporation, stastationtypes, mapconstellations, mapsolarsystems, mapregions and invflags tables.

stastationtypes

trntranslationcolumns

trntranslations

tutorial_categories

tutorial_criteria

tutorial_page_criteria

tutorial_pages

tutorials

tutorials_criterias

typeactivitymaterials

Miscellaneous Info

Skill Points - Clone Grades

From dgmtypeattributes table:



skillPointsSaved - "Amount of skill points saved by clone"

maxJumpClones

hasCloneJumpSlots

allowsCloneJumpsWhenActive

canReceiveCloneJumps

jumpClonesLeft



The first one must be for clone grade. I tried looking for something that stored the skill points accrued by each character, but i bet it doesn't exist and let me explain why: each skill that each character has injected and trained shows up in the entity table with the ownerID of that character, each one of those skills has two entries in the entity_attributes table under its itemID from the entity table: skillPoints and skillLevel. So, the client can figure out how many total skill points are trained if it has the list of skills and the points trained for each. This must mean that the first field in the list above has to be the skill points saved for whichever clone grade you've purchased using station medical services.



Also, if you sort your entity table by ownerID ascending, you should see your primary character entry with an ownerID equal to your accountID in the account table.

This category currently contains no pages or media.