我正在使用php和mysql创建一个网站,其中我想将部分图像的名称保存为文章ID。
例如:image _ [$ articleID] _1.jpg
目前我正在将文章ID视为“查询文章表中的最后一个ID并向其添加一个”。
我想知道这是否是一种正确的方法,因为我在将实际文章插入数据库之前将文章ID提供给图像。
在最糟糕的情况下,我想知道如果10个用户同时插入文章会发生什么。
你们中是否有人知道要做到这一点的正确逻辑,还是我做对了?
答案 0 :(得分:1)
是的,在这种情况下你可能遇到麻烦。有两种解决方案:
使用自动增量列;在创建图像文件名之前将新文章插入数据库,然后更新新记录。
在开始插入记录之前在images表上创建一个锁,并在完成数据库更新后将其释放。
选项1是我的首选;它允许并发使用(没有人必须在所有其他用户完成之前等待),它也使您无需确定最后一个ID。