在 PHP 中从字符串创建唯一整数
我正在使用一个 API 将项目返回给我,然后将这些项目存储在 MySQL 数据库中。但是,API 不会为每个项目返回唯一的 ID,因此除非检查重复项,否则我可能会冒将同一项目存储两次的风险。
我认为防止重复的最有效方法是在 MySQL 中拥有唯一索引。但是,由于 MySQL 无法为字符串提供唯一索引,因此我需要将其中一个字符串(可能是 URL)转换为整数以存储在唯一索引列中。我的这个假设正确吗?我将如何用 PHP 来完成这个任务?
谢谢。
I am using an API that returns items to me, and then storing those items in a MySQL database. However, the API does not return a unique ID for each item, so I risk storing the same item twice unless I check for duplicates.
I think the most efficient way to prevent duplicates is having a unique index in MySQL. However, since MySQL cannot have unique indexes for strings, I need to convert one of the strings (probably the URL) to an integer to store in the unique index column. Am I correct in that assumption? How would I go about accomplishing this with PHP?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以拥有一个索引为 UNIQUE 的 VARCHAR 类型列,但它不会自动递增。然后,您可以使用 REPLACE INTO 进行更新/插入查询。
或者,您仍然可以将自动递增整数 ID 列与唯一索引 VARCHAR 列结合使用,您只需在 INSERT 查询之前(或之后)检查重复项,以处理字符串 ID 重复的情况现有的一个。
You can have a VARCHAR-type column that is indexed UNIQUE, it will not be auto-increment though. You could then use REPLACE INTO for your update/insert queries.
Alternately, you can still use an auto-increment integer ID column in combination with a unique index VARCHAR column, you'll just have to check for a duplication before (or after) an INSERT query to handle the case where a string ID duplicates an existing one.
MySQL 在字符串上拥有唯一约束或索引完全没有问题。使用字符串作为主键也没有问题。
MySQL has no problem at all with having unique constraints or indexes on strings. It also has no problem with having a string as primary key.