我正在做一个新项目。项目的领域逻辑如下:
一个用户上传一个文件(文档)并给出一个标题,然后另一个用户出现并且(s)他也尝试上传一个具有相同标题的文件。如果文档的正文存在差异,则可以。
如何设计我的域模型,以便稍后使用数据的 Web 应用程序可以通知查看特定文档的用户“嘿,这个文档还有另一个版本”。
这是我所拥有的一个简单的 ERD,但这显然不能执行我上面想要的。
我将不胜感激任何帮助和建议。
谢谢
我正在做一个新项目。项目的领域逻辑如下:
一个用户上传一个文件(文档)并给出一个标题,然后另一个用户出现并且(s)他也尝试上传一个具有相同标题的文件。如果文档的正文存在差异,则可以。
如何设计我的域模型,以便稍后使用数据的 Web 应用程序可以通知查看特定文档的用户“嘿,这个文档还有另一个版本”。
这是我所拥有的一个简单的 ERD,但这显然不能执行我上面想要的。
我将不胜感激任何帮助和建议。
谢谢
您可以将它们全部保存在同一个表中,只需使用一列来跟踪版本号:
当添加新记录但它是现有文档的新版本时,您的应用程序将需要能够处理更新文档的版本号。您还需要确保将任何文档元数据(例如
Title
)更改传播到所有相关文档。您可以通过允许文档 ID 不唯一来做到这一点,并且主键是文档 ID 和版本号的组合。否则,可能无法确定要更新哪条记录。另一种方法是为文档元数据创建一个存根,为所有版本创建一个单独的表:
第二个选项是一个稍微复杂的结构,但是会给你更好的参考完整性,因为所有版本都必须通过外键链接到文档存根。
就个人而言,我会选择第二个版本。