锚建模 - 数据类型是模型的一部分吗?

时间:2021-07-26 16:53:09

A question about data types in the Anchor Model database design. The question assume separation of anchor model implementation from the anchor model itself.

关于Anchor Model数据库设计中的数据类型的问题。该问题假设锚模型实现与锚模型本身分离。

In the Anchor Model xml we have following kind information related to data types:

在Anchor Model xml中,我们有以下与数据类型相关的信息:

  • dataRange="varchar(42)"
  • identity="int"
  • timeRange="datetime"

They are stored in Anchor Model entities (anchor/attribute) xml nodes.
Example

它们存储在Anchor Model实体(锚/属性)xml节点中。例

<attribute mnemonic="NAM" descriptor="Name" timeRange="datetime" dataRange="varchar(42)">

As of my understanding the data types does not affect Anchor Model as is, they affect its implementation to particular database vendor. Even time granularity on historized attributes has nothing to do with the model.

据我所知,数据类型不会影响Anchor Model,它们会影响其对特定数据库供应商的实现。即使历史属性的时间粒度与模型无关。

So the question is:

所以问题是:

  • Wouldn't be more accurate to store data types information in metadata xml node? as they are not part of the model
  • 将数据类型信息存储在元数据xml节点中会不会更准确?因为他们不是模特的一部分

  • Or am I missing something and data types have to be part of the Anchor Model? why?
  • 或者我错过了什么,数据类型必须是Anchor模型的一部分?为什么?

1 个解决方案

#1


If you want to reproduce the graphical symbols seen in an Anchor model diagram, then you are correct that less attributes are needed. The detection if something is historized is done on the presence of a timeRange attribute, so that would have to be replaced by a historized="true" in that case. If so, the rest could be moved to the metadata element.

如果要重现Anchor模型图中显示的图形符号,那么您需要的属性较少是正确的。如果某些事物是历史记录的检测是在存在timeRange属性的情况下完成的,那么在这种情况下必须用historyized =“true”替换。如果是这样,其余部分可以移动到元数据元素。

The reason why it is not is simply that in the paper Anchor Modeling – Agile Information Modeling in Evolving Data Environments the formalization of the constructs actually include these attributes. For example, a timeRange is integral to a historized construct, which is why it ended up as an attribute on the corresponding element type.

之所以不简单,原因在于Anchor Modeling - 进化数据环境中的敏捷信息建模,结构的形式化实际上包含了这些属性。例如,timeRange是历史构造的组成部分,这就是它最终作为相应元素类型的属性的原因。

With that being said, the XML structure could probably be cleaned up a bit. Do you see any advantage of moving those attributes to the metadata element?

话虽如此,XML结构可能会被清理一下。您是否看到将这些属性移动到元数据元素的任何优势?

#1


If you want to reproduce the graphical symbols seen in an Anchor model diagram, then you are correct that less attributes are needed. The detection if something is historized is done on the presence of a timeRange attribute, so that would have to be replaced by a historized="true" in that case. If so, the rest could be moved to the metadata element.

如果要重现Anchor模型图中显示的图形符号,那么您需要的属性较少是正确的。如果某些事物是历史记录的检测是在存在timeRange属性的情况下完成的,那么在这种情况下必须用historyized =“true”替换。如果是这样,其余部分可以移动到元数据元素。

The reason why it is not is simply that in the paper Anchor Modeling – Agile Information Modeling in Evolving Data Environments the formalization of the constructs actually include these attributes. For example, a timeRange is integral to a historized construct, which is why it ended up as an attribute on the corresponding element type.

之所以不简单,原因在于Anchor Modeling - 进化数据环境中的敏捷信息建模,结构的形式化实际上包含了这些属性。例如,timeRange是历史构造的组成部分,这就是它最终作为相应元素类型的属性的原因。

With that being said, the XML structure could probably be cleaned up a bit. Do you see any advantage of moving those attributes to the metadata element?

话虽如此,XML结构可能会被清理一下。您是否看到将这些属性移动到元数据元素的任何优势?