Changes between Version 10 and Version 11 of DeveloperGuidelines/Architecture


Ignore:
Timestamp:
09/27/13 01:59:59 (11 years ago)
Author:
Michael Howden
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DeveloperGuidelines/Architecture

    v10 v11  
    11= Architecture =
     2
     3== Stack ==
    24
    35[[Image(Architecture.png)]]
    46
    5 Sahana Eden uses a [wiki:S3XRC/RESTfulAPI WebServices] architecture
     7Sahana Eden uses a [DeveloperGuidelines/WebServices WebServices] architecture
    68
    7 API documentation is available in Epydoc format:
    8  * http://pub.nursix.org/eden/s3/
     9== Data Model ==
    910
    1011ER diagrams can be built using MySQL Workbench
     
    1213dbwrench could also be used as a E-R diagram modelling tool for Postgres database
    1314
    14 
    15 == !Key/Value Tables ==
    16 This is a fairly common pattern for storing flexible data models.
    17 
    18 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 [http://howfuckedismydatabase.com/nosql/ unable to be queried easily].
    19 
    20 For these reasons there is currently no support for this model in CRUD, although it would be easy to add if-required.
    21 
    22 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.
    23 
    2415----
    2516DeveloperGuidelines
     17[wiki:S3 S3 (Sahana Version 3) API Guide]