模型的动态属性
Dynamic attributes for a model
我目前正在创建一个文档管理系统,用户应该能够在其中配置支持的文档类型以及文档属性。我当前的模板概念 ERD 如下所示:
但是如果我想以这种方式存储我的文档,我会在我的数据库中为每个具有 2 个属性的文档创建 3 个条目(1 个用于文档,每个属性另一个条目)。在我看来,我会通过以下方式做到这一点:
在我看来,这看起来不太酷。还有其他方法可以解决这个问题吗?
属性是固定的吗?
在这种情况下,上面的 (m:n
) 看起来更好,但我认为您不需要 attribute name
,而是映射 [=24= 中的实际 value
].某些列可能会增强映射 table 以识别其他数据,例如谁、何时、为什么以及可能 - 如果需要 - 允许某种软删除。
第二个是 1:n
,将一遍又一遍地定义相同的属性名称。
思考 meta
和 instance
:它是元数据,您的属性是如何命名的。您可以定义一个复杂的元模型,哪些属性适合哪些上下文。您可能会引入多语言支持。只有值(以及描述映射本身的附加数据)是实例数据。
我目前正在创建一个文档管理系统,用户应该能够在其中配置支持的文档类型以及文档属性。我当前的模板概念 ERD 如下所示:
但是如果我想以这种方式存储我的文档,我会在我的数据库中为每个具有 2 个属性的文档创建 3 个条目(1 个用于文档,每个属性另一个条目)。在我看来,我会通过以下方式做到这一点:
在我看来,这看起来不太酷。还有其他方法可以解决这个问题吗?
属性是固定的吗?
在这种情况下,上面的 (m:n
) 看起来更好,但我认为您不需要 attribute name
,而是映射 [=24= 中的实际 value
].某些列可能会增强映射 table 以识别其他数据,例如谁、何时、为什么以及可能 - 如果需要 - 允许某种软删除。
第二个是 1:n
,将一遍又一遍地定义相同的属性名称。
思考 meta
和 instance
:它是元数据,您的属性是如何命名的。您可以定义一个复杂的元模型,哪些属性适合哪些上下文。您可能会引入多语言支持。只有值(以及描述映射本身的附加数据)是实例数据。