重塑数据框架的形式化UML表示

重塑数据框架的形式化UML表示,uml,structure,class-diagram,Uml,Structure,Class Diagram,对于数据表的重构文档,从“宽”到使用每个分数的标准列,再到使用分数列和标准列,我的第一反应是使用UML类图 我知道通过改变数据表的结构,类属性没有改变 我的第一个问题是宽版本还是长版本是数据表更正确的表示形式 我的第二个问题是,将这两种表述联系起来是否有意义?如果有,通过哪种关系 我的第三个问题是,UML类图以外的东西是否更适合记录重塑(在R中将分布显示为一个盒子之前的数据预处理)。您从表格跳到UML有点太快了。这使得您的问题非常混乱,因为像表一样宽的东西表示为长的类,反之亦然 重新表述您的问

对于数据表的重构文档,从“宽”到使用每个分数的标准列,再到使用
分数
列和
标准
列,我的第一反应是使用UML类图

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

我的第一个问题是宽版本还是长版本是数据表更正确的表示形式

我的第二个问题是,将这两种表述联系起来是否有意义?如果有,通过哪种关系


我的第三个问题是,UML类图以外的东西是否更适合记录重塑(在R中将分布显示为一个盒子之前的数据预处理)。

您从表格跳到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..*
,则只有long选项有效

现在回答你的问题:

  • 两种表述都是正确的,;他们只是有不同的特点。宽度是不灵活的,因为最大分数是由表结构固定的。另外,添加一个新的分数实际上需要更新一个记录(因此两个模型可能的并发性并不相同)。如果要连续显示学生成绩的历史记录,则使用long稍微复杂一些
  • 是的,将两者联系起来是有意义的,特别是如果你在写第一个到第二个的转换
  • UML在这里不一定会增加价值。如果您真正关心表和值,那么还可以使用实体/关系图。但是UML也有它的优点,它允许您添加行为方面。如果不是现在,那以后再说。你可以考虑使用非标准,来阐明你正在建模一个表(因此你的设计是一个低层次的视图)。李>
    对于获取指向的指针也很有用。这个答案为我提供了清晰的思路,我需要理解UML并改进我的文档实践。