本帖最后由 160678715510785 于 2021-4-20 16:19 编辑 上期云表开发架构的想法分享后,有同学建议再分享一些内容,本期就分享一下我第一个项目趟过的坑,希望能对大家有所帮助。 参加第1期特训云培训班时,刚接触云表1个月,正好手上有一个练手的需求----某学校教学质量考核。简单来说,就是全年级成绩出来以后,根据成绩各种排名、各种环比、各种加工计算等,大概算了一下,180个计算指标项左右。 这个是典型的分析型系统,分析型系统说实话不太适合云表的使用场景,最后花了两个月时间还是做了出来,其中有不少坑分享给大家。 1.表单数据项的设计(其是更准确应该叫数据模型设计)。 (1)代码表的设计:我采用的是单个代码表的方式,这和现在大家采用的方式相同。其中有通用的代码和项目范围内使用的代码。虽然同样可以实现功能,但这套成果物复用率很低,模板间的关系也复杂,一个关联的模板有问题使用就有问题。这也是开发框架要主要解决的问题(有时间再分享云表框架代码设计)。这也是单模板不能交易的主要原因之一。 (2)参数表的设计:同样也是采用单个模板的方式,同样也是模板在项目间再利用率低的问题。 (3)表单数据项设计:遵循基本的范式建模型,结合云表的特点冗余代码名称(交易型系统一般采用3范式,分析型系统采用维度建模),本次模型设计交易控制的表采用3范式,主从表设计,冗余代码名称(显示用,控制用代码);结果表使用云表的交叉表,数据“行存”的方式,保证指标可灵活扩展。 由于不了解云表特性,最大的坑是没有在设计表时指定数据库列名,导致我写了好多视图来对应f1,f2…….云表开发者如果需要和数据库交互的表,记得这里有一个技巧!
对界面的控制最先采用表单上的按钮来控制,但控件控制的属性弱,无法单独显示和隐藏,后改为工具栏按钮,按状态显示可用按钮,降低操作选项难度,减少误操作入口。 3.数据加工和外部数据源 纯数据加工处理还是交给数据库来做吧。如中国式的排名是计算中最最基础的步骤,数百人中国式排名采用云表处理复杂不说,需要数十分钟,但用数据库分析函数秒出(我使用的是oracle),所有180个指标近计算结果近10万条数据用时不到1分钟。剩下的查询和统计报表再通过外部数据源交给云表展示是不错的配合。 |
+124
最近谁赞过
2 条回帖