The user data tables begin with names that do not have leading underscores.
To understand the mapping between the form definition and the user data
tables and the columns in those tables, you need to look at the rows in the
_FORM_DATA_MODEL table.
That table describes the mapping:
ELEMENT_NAME -> (ELEMENT_TYPE, ORDINAL_NUMBER, PERSIST_AS_SCHEMA_NAME,
PERSIST_AS_TABLE_NAME, PERSIST_AS_COLUMN_NAME)
The PERSIST_AS_... fields identify the table and column that hold the
values for that ELEMENT_NAME. The ORDINAL_NUMBER identifies the sequence
of fields within its enclosing group or repeat. The ELEMENT_TYPE identifies
the data type of this element (REPEAT, GROUP, GEOPOINT, STRING, INTEGER,
DECIMAL, BINARY, ...).
Since elements can be groups or repeat groups, and the same name could
appear in two or more form definitions (or nested under different enclosing
groups or repeats), the nesting of the ELEMENT_NAME is indicated through
the PARENT_URI_FORM_DATA_MODEL field (referring back to the _URI field of
this table), and the form definition to which an element belongs is
identified by the URI_SUBMISSION_DATA_MODEL key.
The URI_SUBMISSION_DATA_MODEL value refers to that same field in the
_form_info_submission_association table, where the FORM_ID for this form is
identified.
If your form has multiple-choice selections (), each such form
element is stored in a separate table, with the value held in a VALUE
field. I.e., the space-separated values in the submission XML are split
into the list of chosen selections, and one row is inserted in this
separate table for each selection.
If your filled-in form has image, audio or media attachments, each such
form element is stored in a trio of tables, ending ..._BIN, ..._REF,
..._BLB. This allows the file name, type, and size to be defined in the
_BIN table, and the _REF and _BLB tables hold a description of the sequence
of chunks, and the chunks themselves (respectively), that make up that
file. This allows for arbitrary-size files to be stored (without these 3
tables, image files would be limited to 1MB on MySQL).
Mitch
···
---------- Forwarded message ----------
From: Mitch S
Date: Mon, Aug 13, 2012 at 11:06 AM
Subject: Re: [ODK Community] ODK database structure
To: opendatakit@googlegroups.com
This is more appropriate for the opendatakit-developers@ list. Moving the
discussion over there.
On Fri, Aug 10, 2012 at 12:02 PM, IMOBI_2 jackson@imobi.co.za wrote:
Hi Mitch
Thanks for the reply,i had read this site before.http://code.google.com/p/
**opendatakit/wiki/**AggregateDatabaseStructurehttp://code.google.com/p/opendatakit/wiki/AggregateDatabaseStructure
Am really confused with the tables,when querying from the Aggregate
database.So please which tables does contain data from the users,
or should i use tables in the _FORM_DATA_MODEL.when querying ?????
--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com
--
Mitch Sundt
Software Engineer
University of Washington
mitchellsundt@gmail.com