wiki:DeveloperGuidelines/Architecture

Version 6 (modified by Fran Boon, 13 years ago) ( diff )

--

Architecture

Overall architecture:

Sahana Eden uses a WebServices architecture

API documentation is available in Epydoc format:

ER diagrams can be built using MySQL Workbench

Key/Value Tables

This is a fairly common pattern for storing flexible data models.

If you need massive scale then using a dedicated NoSQL database for this does have it's advantages, however it is rarely useful for normal Eden tables due to performance limitations & the inability to use database constraints here (like Foreign Keys). Another disadvantage is that it is unable to be queried easily.

For these reasons there is currently no support for this model in CRUD, although it would be easy to add if-required.

If there is a strong need for this pattern for the non-foreign keys, then it is best to encode all the key/value pairs into a single text field, e.g. in JSON (like deleted_fk). Then need to add widget to handle the user presentation, validation & encoding/decoding. A Metavalidator could be used for server-side validation, if required.


DeveloperGuidelines

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.