save && dump文档

since   :   %%date(%Y-%m-%d)  $Rev$

%!target:html
%!postproc(tex): '\.gif' '.eps'
%!preproc(html): '\.dot' '.gif'
%!preproc(tex): '\.dot' '.pdf'
%!encoding:utf-8

== 配置 ==

== $has_many,$has_one ==

=== 说明 ===
标明表的对外一对多($has_many)一对一关系($has_one)

=== 语法 ===
```
var $has_many = array(
    'sdfkey'=>'表名(@app名):操作:字段关联',
    ....
);
```

| 名称 | 说明 | 默认值 | 必须 |
| sdfkey | 对应关系在sdf树中的挂载点名 | 无 | √ |
| 表名 | 对应的表名 | 无 | √ |
| 操作 | save的操作方式( append:只对导入数据做save保存 不对数据库原有数据做操作/replace:先删除数据库原有所有相关数据 再对导入数据做save/contrast:和数据数原有数据做比对 导入数据原有数据存在库中做update 不存在insert 数据库存在未导入数据delete) | append | 　 |
| 字段关联 | 本表字段^关联表字段 2表之间 | 本表主键 与 对应表dbschema中"type=>table:本表名"字段 不能关联用此方法标识对应关系 | 　 |

+=save=+

function save(&$data,$mustUpdate = null)

==参数==
| 名称 | 说明 | 结构 | 引用 | 必要 |
| $data | 需保存数据的 | sdf | √ | √ |
| $mustUpdate | 必须保存的结构说明 | sdf | 　 | 　 |

==说明==
将单条sdf数据通过has_many,has_one配置递归save入数据库，联合主键表不支持递归save，返回bool，主键返回$data

+=set_default=+
function set_default( $parentId, $defaultDataId )

==参数==
| 名称 | 说明 |
| $parentId | 父表id |
| $defaultDataId | 本表默认值id |

==说明==
设定默认值方法，当默认值id由父表记录时 需要重载 返回bool

+=dump=+

function dump($filter,$field = '*',$subSdf = null)

==参数==
| 名称 | 说明 | 类型 | 默认 | 必要 |
| $filter | 搜索条件 | String(表示主键)或array | 　 | √ |
| $field | 主表需要输出字段 | String | * | 　 |
| $subSdf | 附加输出的子节点sdf | String或array | null | 　 |

==$subSdf语法==
```
array(
    'key'=>array('field' subsdf),
    ':Foreign key'=>array(
        'field',subsdf
    ),
)
```

| 名称 | 说明 | 
| key | has_many/has_one定义键值 支持xpath语法 |
| field | 子表所需输出字段 |
| Foreign key | dbschema定义的外键表名 :前有string可以自定义外联表数据在sdf树中的键名 |
| subsdf | 子表subsdf |

标准sdf结构的subsdf定义在model中
例:mdl.goods.php
    var $subSdf = array(
            'default' => subsdf ......
        );
未定义为has_many,has_one的集合 不dump外键

使用方法:$goods = $oGoods->dump($goods_id,'*','default');
可以自定义别的写法 basic,simple等等等

==dump depend重载==
没最终想好怎么弄
暂时需要重载的参考mdl.products.php
```
function _dump_depends_goods_lv_price(&$data,&$redata,$filter,$subSdfKey,$subSdfVal)
```

==说明==
返回单条sdf结构数据 一对多数据输出list 会以主键id做key 联合主键以父表主键外的主键做key

+=batch_dump=+
```
function batch_dump($filter,$field = '*',$subSdf = null,$start=0,$limit=20,$orderType = null )
参数:$filter,$field,$subSdf 同dump ,$start=0,$limit=20,$orderType同getList
返回多个sdf
```


