我目前正在创建一个文档管理系统,用户应该能够配置支持的文档类型以及文档属性。我目前对模板的概念ERD如下所示:
但如果我想以这种方式存储我的文档,我将为每个文档创建2个属性我的数据库中的3个条目(1个用于文档,每个属性用于另一个条目)。在我看来,我会这样做:
在我看来,这看起来并不酷。还有另一种解决方法吗?
答案 0 :(得分:2)
属性是固定的吗?
在这种情况下,上层(m:n
)看起来更好,但我认为您不需要attribute name
,而是需要映射表中的实际value
。某些列可以增强映射表以识别其他数据,例如谁,何时,为什么以及可能 - 如果需要 - 允许进行软删除。
第二个是1:n
,并将一遍又一遍地定义相同的属性名称。
在meta
和instance
中思考:这是元数据,您的属性是如何命名的。您可以定义一个复杂的元模型,该属性适合哪个上下文。您可能会介绍多语言支持。只有值(以及描述映射本身的其他数据)才是实例数据。