当与唯一项目关联时,是否有必要在数据库中记录图像路径?

时间:2015-03-27 18:45:36

标签: database database-design web-applications web-application-design

在我的Web应用程序中,有几个类的实例需要图像(即照片)。每个实例只能有一个图像。目前,我的实现是当用户创建新实例时,我保持上传文件的名称不变,并将其记录在关联表的ImageUrl字段中。

我觉得这是不必要的。我可以使用关联实例的唯一URL重命名图像,并且可以相应地实现编程逻辑。例如,如果用户的ID是145,那么我可以用这个名称记录它:profilephoto_145。之后,当我需要显示用户的照片时,我需要的只是用户的id。如果用户上传了一个新文件,我只能用同一个名称覆盖现有文件。

我想知道这是否有意义,假设每个实例都有一个相关的图像,并且不需要跟踪以前的文件。对此有什么共同的方法?我应该保留每个图像的完整路径并保留其原始名称,还是应该使用ID实现此重命名文件?

1 个答案:

答案 0 :(得分:1)

  

我可以使用关联的唯一网址重命名图像   实例,我可以相应地实现编程逻辑。对于   例如,如果用户的id是145,那么我可以用这个名字记录它:   profilephoto_145。

是的,你可以这样做。这种事物的一般搜索术语是“紧耦合”或“耦合和凝聚”。该概念适用于许多不同的软件开发领域。

您的基本想法是,您总是为每个用户存储一张个人资料照片,并且您将通过连接“某种路径”和“profilephoto_”以及用户的ID来存储它。主要问题是对该想法的任何更改都需要更改源代码。更改源代码会产生连锁反应。

常见的替代方法是将图像文件的名称存储在数据库中。在这种情况下,对该基础思想的大多数更改只需要数据库更新。

当人们开始使用像这样的词总是从不时,已经有一段时间畏缩的程序员。因为我们知道,如果有足够的时间,使用始终从不相对于软件的语句永远不会成立。