我正在尝试设计一个数据库来跟踪文档。每个文档可以具有多个版本,并且每个版本都具有与之关联的许多属性。但是,每个版本都可以链接到多个类别。版本之间唯一的共享属性是文档名称。
我当前的设计是
文档表:
DocumentVersions表
DocumentCategories表
DocumentVersionsDocumentCategories表
我想知道这种结构是否还可以?另外,使用DocumentVersionsDocumentCategories连接表而不是仅使用具有以下字段的DocumentCategoriesTable会是什么情况:id,document_version_id,名称?而且,是否有任何理由在“文档表”上具有时间戳记字段?
api将需要能够在文档上进行搜索,过滤和分页,以显示每个文档的所有类别以及最新版本的时间戳。即返回像这样的文档数组:
[{ name: "first doc", categories: "first category, second category", timestamp: 01/01/2019 },
{ name: "second doc", categories: "second category", timestamp: "01/01/2020 },
{ name: "third doc", categories: "fourth category", timestamp: 01/01/2019 }]
我猜我将需要加入所有这些表并使用密集排名,以及合并吗?