Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 链接数据库id';档案_Php_Mysql_Rdbms_Database - Fatal编程技术网

Php 链接数据库id';档案

Php 链接数据库id';档案,php,mysql,rdbms,database,Php,Mysql,Rdbms,Database,假设我使用的是MySQL,我有一个列id,它是某个表中的主键。在PHP中,我生成一个随机字符串/整数,并将其作为id存储在数据库中。然后,我在代码中的任何地方引用该id作为文件名(因为我知道它总是唯一的) 我的问题是,我应该在表中添加一个额外的列来存储所述文件的完整位置,还是通过id到处引用它 我这样问是因为我的应用程序仍处于开发的早期阶段,最终可能不得不根据其使用情况更改模式和/或数据库 ==编辑=== 让我进一步澄清我的要求。我正在数据库中存储某个图像的id。现在我知道所有的图像名称都与id

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

我的问题是,我应该在表中添加一个额外的列来存储所述文件的完整位置,还是通过id到处引用它

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

==编辑===

让我进一步澄清我的要求。我正在数据库中存储某个图像的id。现在我知道所有的图像名称都与id相同,它们存储在say/123img45中。因为我现在知道它们的位置,所以我不需要存储文件的路径,但在开发的后期,我可能会更改数据库或更改文件夹的名称等


是否值得存储路径?或者,当您到达该桥时,是否最好跨越该桥

如果您的文件始终位于已知路径或一组或多个已知路径中,并且可以决定路径是否包含每个id,则只能存储文件的id。id必须是合适的文件名(无“\”、“/”和其他字符),并且必须是唯一的(请确保id生成在一段时间后无法生成相同的id,因为会发生冲突)。

我不想麻烦。您可以在应用程序代码中保留文件作为配置变量存储的文件夹路径。这也意味着您可以在无需触摸数据库的情况下移动文件夹


如果将来需要存储完整路径,那么无论出于何种原因,都可以很容易地更新数据库,以便在以后添加完整路径。

对,但是如果您知道文件的完整路径将来可能会更改,那么是否值得存储该文件的完整路径?只存储id。路径可以更改,但必须在配置中存储路径(文件、环境…)。如果存储完整路径,则在不更改数据库路径的情况下无法更改它。仅存储id更简单。