2011-09-10 46 views
0

说我正在使用MySQL,我有一个列ID,这是我在某个表中的主键。在PHP中,我生成一个随机字符串/整数,并将其作为id存储在我的数据库中。然后我在代码中的任何地方引用该id作为我的文件的名称(因为我知道它始终是唯一的)。链接数据库ID和文件

我的问题是,我应该在表中添加一个额外的列来存储所述文件的完整位置,或者是通过身份证引用它到处罚款吗?

我问这是因为我的应用程序还处于开发的早期阶段,我可能最终不得不根据其用法更改我的模式和/或数据库。

===编辑===

让我澄清一下我所要求的进一步。我将一些图像的ID存储在我的数据库中。现在我知道所有的图像名称都与id相同,并且它们存储在/ 123img45中。由于我现在知道他们的位置,我不打扰存储路径的文件,但后来在开发中,我可能会更改数据库或更改文件夹的名称等等...

是否值得存储路径?还是更好跨过那个桥,当你到达它

回答

1

我不会打扰。您可以将文件路径保存为应用程序代码中的配置变量。这也意味着您可以移动文件夹而无需触摸数据库。

如果您将来需要存储完整路径,那么稍后如果您发现需要出于任何原因需要更新数据库以便添加完整路径,则很容易。

1

如果你的文件总是在一个已知的路径或一个集合或已知的路径,并可以决定与路径包含每个ID,你可以只存储该文件的ID 。该ID必须是一个合适的文件名(不是'\','/'和其他字符),并且必须是唯一的(确保在发生冲突后一段时间内,ID生成不会生成相同的ID)。

+0

没错,但是如果你知道它将来可能会改变,那么值得存储文件的完整路径吗? – Obto

+1

只存储该ID。路径可以更改,但必须将路径存储在配置(文件,环境...)中。如果存储完整路径,则不能在不更改数据库路径的情况下更改它。只存储id更简单。 –