【问题标题】:Storing database pk IDs in php code alternative?在 php 代码替代方案中存储数据库 pk ID?
【发布时间】:2011-08-21 05:00:18
【问题描述】:

我们有数十万个查找值,由于产品仍处于开发阶段,因此 ID 不固定。因此,无论何时更新 ID,我们都必须返回并更新整个代码中的数千个 ID,以使其正常工作。它会按时吃掉。

是否有另一种方法可以在代码中保持 ID 为动态:它们会在表中更改 ID 时自动更新,或者它们都存储在所有数据库表的 1 个文件中,这样可以更轻松、更快速地从开发和测试的角度?

平台是Mysq + codeignitor php。

【问题讨论】:

  • 为什么要在代码中硬编码 ID?
  • 您不应依赖 ID 进行测试和开发
  • 还有什么替代方案?例如:用户状态。当他们注册时,他们处于“待激活”状态,即我的查找表中的 ID 1208。在他们确认他们切换到“活动”,即 ID 1209 等之后。所以我的团队正在代码中硬编码这些 ID 1208、1209 等。为了测试如果我不使用正确的 ID,我还能测试谁的正确状态正在改变?
  • 在代码中使用引用 id 而不是硬编码的 id 本身的变量。应该通过从数据库中提取 id 来为变量赋值。
  • @Uri - 正如 AJ 所说......或者更好的是,使用常量而不是变量。这些值应该在代码中的一个位置设置一次。

标签: php application-design


【解决方案1】:

在代码中为 id 定义常量,而不是硬编码 id 值。这是一个例子:

<?php

$result = mysql_query("SELECT Id, Name FROM Product");
while($row = mysql_fetch_assoc($result)){
    define('ID_'.$row['Name'],$row['Id']);
}
?>

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 2021-09-28
    • 2011-02-05
    • 2023-03-26
    • 1970-01-01
    • 2010-10-15
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多