Альтернативное хранение идентификаторов pk базы данных в коде php?

#php #application-design

#php #разработка приложения

Вопрос:

У нас есть сотни тысяч значений для поиска, и поскольку продукт все еще находится в разработке, идентификаторы не исправлены. Поэтому каждый раз, когда идентификатор обновляется, мы должны возвращаться и обновлять тысячи идентификаторов по всему коду, чтобы заставить его работать должным образом. Это отнимает время.

Есть ли другой способ сохранить идентификаторы как динамические в коде, чтобы либо: они автоматически обновлялись при изменении идентификаторов в таблицах, либо все они хранятся в одном файле для всех таблиц базы данных, что значительно упрощает и ускоряет обновления с точки зрения разработки и тестирования?

Платформа — Mysq codeignitor php.

Комментарии:

1. Почему вы жестко кодируете идентификаторы в своем коде?

2. Вы не должны полагаться на идентификаторы при тестировании и разработке

3. Какая еще альтернатива? Пример: статус пользователя. Когда они регистрируются, они находятся в «Ожидании активации», которая имеет идентификатор 1208 в моей таблице поиска. После подтверждения они переключаются на «Активный», который имеет идентификатор 1209 и т.д. Итак, моя команда жестко кодирует эти идентификаторы 1208, 1209 и т.д. В коде. Для тестирования, у кого еще я могу проверить, изменяется правильный статус, если я не использую правильные идентификаторы?

4. Используйте в своем коде переменные, которые ссылаются на идентификаторы, вместо самих жестко запрограммированных идентификаторов. Переменным следует присваивать значения, извлекая идентификаторы из вашей базы данных.

5. @Uri — Как говорит Эй Джей … или даже лучше, используйте константы, а не переменные. И эти значения должны быть установлены один раз, в одном месте вашего кода.

Ответ №1:

Определите константы в вашем коде для идентификаторов вместо жестко запрограммированных значений идентификаторов. Вот пример:

 <?php

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