0

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

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

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

4

1 回答 1

1

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

是的,你可以这么做。这种东西的一般搜索词是“紧耦合”或“耦合和内聚”。该概念适用于软件开发的许多不同领域。

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

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

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

于 2015-03-28T12:38:13.690 回答