我正在使用向我返回项目的 API,然后将这些项目存储在 MySQL 数据库中。但是,API 不会为每个项目返回唯一的 ID,因此我冒着存储相同项目两次的风险,除非我检查重复项。
我认为防止重复的最有效方法是在 MySQL 中使用唯一索引。但是,由于 MySQL 不能为字符串提供唯一索引,因此我需要将其中一个字符串(可能是 URL)转换为整数以存储在唯一索引列中。我的假设是否正确?我将如何使用 PHP 来完成此任务?
谢谢你。
我正在使用向我返回项目的 API,然后将这些项目存储在 MySQL 数据库中。但是,API 不会为每个项目返回唯一的 ID,因此我冒着存储相同项目两次的风险,除非我检查重复项。
我认为防止重复的最有效方法是在 MySQL 中使用唯一索引。但是,由于 MySQL 不能为字符串提供唯一索引,因此我需要将其中一个字符串(可能是 URL)转换为整数以存储在唯一索引列中。我的假设是否正确?我将如何使用 PHP 来完成此任务?
谢谢你。
您可以拥有一个索引为 UNIQUE 的 VARCHAR 类型列,但它不会自动递增。然后,您可以使用REPLACE INTO进行更新/插入查询。
或者,您仍然可以将自动递增整数 ID 列与唯一索引 VARCHAR 列结合使用,您只需在 INSERT 查询之前(或之后)检查重复项以处理字符串 ID 重复的情况现有的。
MySQL 在字符串上具有唯一约束或索引完全没有问题。将字符串作为主键也没有问题。