模型的动态属性

Dynamic attributes for a model

我目前正在创建一个文档管理系统,用户应该能够在其中配置支持的文档类型以及文档属性。我当前的模板概念 ERD 如下所示:

但是如果我想以这种方式存储我的文档,我会在我的数据库中为每个具有 2 个属性的文档创建 3 个条目(1 个用于文档,每个属性另一个条目)。在我看来,我会通过以下方式做到这一点:

在我看来,这看起来不太酷。还有其他方法可以解决这个问题吗?

属性是固定的吗?

在这种情况下,上面的 (m:n) 看起来更好,但我认为您不需要 attribute name,而是映射 [=24= 中的实际 value ].某些列可能会增强映射 table 以识别其他数据,例如谁、何时、为什么以及可能 - 如果需要 - 允许某种软删除。

第二个是 1:n,将一遍又一遍地定义相同的属性名称。

思考 metainstance:它是元数据,您的属性是如何命名的。您可以定义一个复杂的元模型,哪些属性适合哪些上下文。您可能会引入多语言支持。只有值(以及描述映射本身的附加数据)是实例数据。