与唯一物品关联时是否需要在数据库中记录图像路径?

Is it necessary to record the image paths in the database when it is associated with a unique item?

在我的网络应用程序中,有几个 类 的实例需要图像(即照片)。这些实例中的每一个都只能有一个图像。目前我的实现方式是当用户创建新实例时,我保留上传文件的名称,并记录在关联table的ImageUrl字段中。

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

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

I can just rename the image with the unique url of the associated instance, and I can implement the programming logic accordingly. For example, if a user's id is 145, then I can record it with this name: profilephoto_145.

是的,你可以做到。这种东西的一般搜索词是 "tight coupling" 或 "coupling and cohesion"。这个概念适用于软件开发的许多不同领域。

您的基本想法是,您将始终为每个用户存储一张个人资料照片,并且您将通过串联 "some kind of path" 和 "profilephoto_" 来存储它和用户的ID。主要问题是对该想法的任何更改都需要更改 源代码 。更改源代码会产生连锁反应。

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

当人们开始使用像 alwaysnever 这样的词时,已经有一段时间的程序员会有点畏缩。因为我们知道,如果有足够的时间,关于软件使用 alwaysnever 的陈述永远不会正确。