使用Heroku运行ClearDB作为MySQL层时,主键按照10的倍数自动增加。例如,第一个插入可能是4,然后是14、24、34等。我完全接受他们的理由,所以这不是问题。
我的问题是,如何在代码中处理这个问题。例如,假设我有一个包含4行的status
表,
id | name
1 | Active
2 | Retired
3 | Banned
4 | Awaiting Mod
然后我在我的应用程序中使用:
if($status['id'] == 1){
//do something
}else{
// do something else
}
很明显,由于PK的递增方式,这将会出现问题。处理这种情况的最佳实践是什么?例如,我不能检查14是否存在,因为没有什么可以说明编号策略不会改变为12、22、32等。
我应该通过名称进行检查,例如:if($status['name'] == 'Active')
,还是在表中添加一个新列来获取所需的int
s?我知道在SQL查询中按int
查询比按string
查询快得多。
那么,处理这个问题的正常方式是什么呢?