重塑数据框架的正式UML表示。

问题描述 投票:0回答:1

对于用 "宽 "重组数据表的文档,可以用 "宽 "的方式进行。准则 每个分数的列使用一个 score 栏和 criterion 列,我的第一反应是使用UML类图。

Wide and long versions of the same class / data table

我知道通过改变数据表的结构,类的属性并没有改变。

我的第一个问题是 是宽版还是长版对数据表的表述更正确?

我的第二个问题是 是将这两个表象联系起来是否有意义--如果有意义,是通过什么关系?

我的第三个问题是 会不会有比UML类图更合适的东西来记录重构(在R中显示分布为盒罐之前的数据预处理)。

uml structure class-diagram
1个回答
1
投票

你从表到UML跳得有点快。 这使得你的问题非常混乱,因为作为表的宽的东西作为类的长的表示,而相反。

重新表述你的问题,看来你是在重构一些表。 广表在同一行中显示了同一个学生的几个值。 这意味着最大练习次数是由表结构固定的。

ID    Ex1  Ex2  Ex3 .... Ex N 
-----------------------------
111    A    A   A   ...   A
119    A    C   -   ...   D
127    B    F   B   ...   F

长表的列数较少,每一行只显示1个特定学生的1个具体分数。

ID   #    Score 
---------------
111  1     A 
111  2     A
111  3     A   
          ...
111  N     A
119  1     A
119  2     C
          ...

你可以在UML类图中对这种结构进行建模。但在UML中,表的布局并不重要:这是ORM映射的问题,你完全可以有一个类模型(属性或关联具有多重性的 1..N),可以使用宽版或长版来实现。 如果多重性将是 1..* 只有长选项才行。

现在谈谈你的问题。

  1. 两种表达方式都是正确的,只是特点不同。 宽的是不灵活的,因为最大的分数数量是由表结构固定的。 而且添加一个新的分数其实也需要更新一条记录(所以两种模型可能的并发量是不一样的)。 如果你想在一行中显示一个学生的历史分数,那么长的就比较复杂了。
  2. 是的,将两者联系起来是有意义的,尤其是当你为第一个转化为第二个而写的时候。
  3. UML在这里不一定能增加价值。如果你真的是关于表和值,你也可以使用实体关系图(EntityRelationship)。但是UML的优势在于 允许数据库建模 以及它让你添加行为方面。如果不是现在,那就以后吧。 你可以考虑使用非标准的 «table» 刻板印象,以澄清你正在建模一个表(所以你的设计的一个低层次的观点)。
© www.soinside.com 2019 - 2024. All rights reserved.