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