按范围区分文件。文件 - 类别 - 部门

时间:2016-10-17 15:48:19

标签: php mysql database database-design relational-database

按类别歧视文件

我正在处理的应用程序的一部分允许用户上传/浏览文件(* .pdf,* .jpg,* .docx ...)。上传的文件存储在给定的类别下,并由文档实体表示。

文件 - 类别 1 1

类别 - 类别 1 M

The corresponding DDL

例如,考虑这种类别层次结构(全局文档):

  • Normative documents 类别树中的根

    • 工厂标准
      • 标准
      • 技术条件
    • 区域标准
  • Reports 类别树中的根

    • 统计(每月)
    • 统计数据(按产品类型划分)

按范围/部门歧视文件

此外,我们将文档区分为全局文档工厂范围)和部门文档

每个部门'都有'一组文件类别(所有部门几乎相同):

  • Guides 类别树中的根
  • Reports 类别树中的根
    • 统计(每月)
    • 统计数据(按产品类型划分)

问题

在提供文档范围时,我似乎无法弄清文档 - 类别 - 部门的关系:< / p>

  1. 我们可以说具有department_id == 0的文档属于全局范围
  2. department_id!= 0的文档与某些部门范围
  3. 相关
  4. 然后我们需要引入 Departments_Categories 表/关系,因为部门可以有不同的文档类别集。
  5. 然后我们可以通过 category_id department_id 来浏览文档。
  6. departments_categories 关系似乎很奇怪。我的解决方案不好吗?我该如何建立关系模型?

1 个答案:

答案 0 :(得分:0)

Aren对于给定的类别可能会有很多文档?如果是这样,那就是很多:1。许多:1由其中一个表中的额外列实现 - 在Documents表中为category_id

很多:许多人需要额外的桌子。 Specific recommendations

您希望您的类别位于层次结构中。这将是一个挑战,因为没有MySQL工具可以遍历这样的。最好使用PHP代码来处理它。

报告(例如每月统计数据)通常是一个程序,用于从数据库生成信息;它不一定是&#34; Document&#34;更不用说&#34;类别&#34;。所以我不明白为什么你在同一句话中提到报告和类别。如果报告不是根据数据计算的,那么它只是另一个文档,不应该区别对待。