curtain 0.2.0

A CRUD app for postgres

## Main table


* Records insert in the main table is inserted as it
* Records inserted in the ext_table will be inserted and refers to a record in the main table
* Records inserted in has_many direct(ex: `order_line` in `orders` table) table has 2 cases
   - If the direct table is owned by the main table, the record is inserted to the direct table
   - If it is not owned and may have a window of its own, the record must already be an existing record of the direct table

* Records inserted in indirect table
  - The record must already been an existing record in the indirect table, and a new record will be inserted into the linker table referring the main record and the indirect record.
 
 
## Examples

* Main table: product
 - ext_table: product_availability
 - has_many: 
 - indirect: category via `product_category`, photo via `product_photo`

* Main table: orders
 - ext_table:
 - has_many: order_line
 - indirect: 
 

## Insert, Update, Delete
 * Main table
   - Insert
   - Update
   - Delete
 
 * Extension table
   - Insert
   - Update
   - Delete
   
 * Has Many (Not owned)
   - Insert
   - Delete
 
 * Has Many ( Owned )
   - Insert
   - Update
   - Delete
 
 * Indirect
   - Insert
   - Delete