例如:有表A(id_1,id_2,excess_amount,loss_amount);A_1(id_1,id_2,id_3,excess_amount,loss_amout),其中A_1是A表的子表,id_n是各自主键.
现在要求是:由用户输入loss_amount,loss_amout不得大小excess_amount,需要注意的是,A表可能有子记录A_1表,也可能没有.
当A有子表A_1时,A表loss_amount = 子表A_1所有loss_amount 之和(不得大于它所属的excess_amount).此时系统自动计算.
当A没有子表A_1时,A表loss_amout由用户自己输入,同样有大小限制.
A和A_1可能都有多条记录.
现在的解决方案为:
根据主键动态对loss_amount命名(loss_amout不叫lossAmount),例如A表中的记录excess_amount,loss_amount的对应命名为:id1_id2_excess,id1_id2_loss,
而对于其子表则为:id1_id2_id3_excess,id1_id2_id3_loss.
这样做的好处是容易理解,维护,可能精确到最小的每一条记录(子表记录).
如:判断loss_amount 不得大于excess_amount,则可以根据它们自己的名子来区分比较.
对于有子表的情况,怎样计算总和:
首先能够确定的是子项的名子,如id1_id2_id_3_loss,然后查询所有Tag("input"),找到其中以id1_id2为前缀并且以"_"分隔长度为4的段,相加求和即可.
还有一个问题就是数据保存:
由于前台数据命名的不确定性.所以在后台也只能靠字段组合来读取前台(request)里的参数.
因此要求在前台隐藏变量:对于A表里的每一条 记录,要隐藏值为id1,id2,id3(其中id3为空,但不能少)三个段,名子要固定.对于A_1表则要id1,id2,id3三个字段.规则就是取消A表
和A_1表的主从关系,它们每一条都有一组对应的隐藏变量如A表有记录Aa,Ab,其中Aa有A_1a,A_1b,A_1c三条子记录,Ab没有,则对应要有2+3=5组隐藏变量,而区分它们的主从关系
就是靠字段id3是否为空来实现.
现在要求是:由用户输入loss_amount,loss_amout不得大小excess_amount,需要注意的是,A表可能有子记录A_1表,也可能没有.
当A有子表A_1时,A表loss_amount = 子表A_1所有loss_amount 之和(不得大于它所属的excess_amount).此时系统自动计算.
当A没有子表A_1时,A表loss_amout由用户自己输入,同样有大小限制.
A和A_1可能都有多条记录.
现在的解决方案为:
根据主键动态对loss_amount命名(loss_amout不叫lossAmount),例如A表中的记录excess_amount,loss_amount的对应命名为:id1_id2_excess,id1_id2_loss,
而对于其子表则为:id1_id2_id3_excess,id1_id2_id3_loss.
这样做的好处是容易理解,维护,可能精确到最小的每一条记录(子表记录).
如:判断loss_amount 不得大于excess_amount,则可以根据它们自己的名子来区分比较.
对于有子表的情况,怎样计算总和:
首先能够确定的是子项的名子,如id1_id2_id_3_loss,然后查询所有Tag("input"),找到其中以id1_id2为前缀并且以"_"分隔长度为4的段,相加求和即可.
还有一个问题就是数据保存:
由于前台数据命名的不确定性.所以在后台也只能靠字段组合来读取前台(request)里的参数.
因此要求在前台隐藏变量:对于A表里的每一条 记录,要隐藏值为id1,id2,id3(其中id3为空,但不能少)三个段,名子要固定.对于A_1表则要id1,id2,id3三个字段.规则就是取消A表
和A_1表的主从关系,它们每一条都有一组对应的隐藏变量如A表有记录Aa,Ab,其中Aa有A_1a,A_1b,A_1c三条子记录,Ab没有,则对应要有2+3=5组隐藏变量,而区分它们的主从关系
就是靠字段id3是否为空来实现.