Representation of objects for the Lua API
Resources
Resources are stored as a table {_table, _key}
,
where _table
is a string containing the name of the SQL table
to which the resource is attached,
and _key
contains the primary key for the row mapped to the resource.
Access to the contents of the resource via resource.field
is overloaded to a function which returns
the value currently found in a database.
Thus, the value of resource.field
will remain up-to-date
even if a SQL operation modified the contents of the database.
Resource vectors
Resource vectors (e.g. the list of abilities of an item)
are stored as a table {_table, _parent}
,
where _table
is a string containing the name of the SQL table
containing this kind of resource (e.g. "items_abilities"
)
and _parent
is the primary key of the parent resource.
Accessing the i
-th entry of this resource vector
triggers a SQL request which retrieves the corresponding
primary key.