Я бы сказал, что неплохо иметь такую информацию в жестком коде, если она нужна быстро и грязно.
Но подумайте о том, чтобы иметь общий класс для представлений с методом, который берет ваши данные из базы данных, и некоторый массив, описывающий, какие столбцы использовать. Затем в дочерних классах (UserView, PostView, Wh whatTableNameView) вы можете вызвать этот базовый метод с массивом, содержащим «Имя», «Адрес» и т. Д.
Извините, если я говорю о тарабарстве Python, я пришел к этому вопросу из тега PHP;) Более или менее так
class BaseView {
public function display(& $data, array $columnNames) {
foreach($data as $row) {
foreach($columnNames as $c) {
echo $row->$c; // or $row[$c] or whatever your data is, I'm assuming objects
}
echo "\n";
}
}
class UserView extends BaseView{
public function display(& $data) {
parent::display($data, array('Name', 'Address');
}
}
Хорошие вещи здесь:
- Нужна еще одна колонка? Убедитесь, что вы запрашиваете его, затем измените 1 строку в UserView.
- Нужен текст для меток столбцов HTML (
- $ data может быть дескриптором ресурса (например, while ($ rs.nextRow ())) и не обязательно полным массивом, который может занимать много памяти и занимать время для передачи из одной функции в другую.
- если вы посмотрите на HTML-таблицы вокруг этих записей, у вас будет единое представление о приложении, поскольку вы можете определить их только в одном месте.
Если по какой-то причине это вам не подходит, то по-настоящему общим решением является использование индексов вместо имен столбцов. $ data [$ i] [0], $ data [$ i] [1] и т. д. Большинство API баз данных предоставляют возможность запрашивать столбцы в виде имен, чисел или обоих. Для PHP + MySQL см. Примеры на http://www.php.net/manual/en/function.mysql-fetch-array.php
Но это рано или поздно укусит вас в $$, потому что вы потеряете информацию метаданных. Допустим, вы хотите позже обернуть свои «имена» в ссылки:
echo '<a href="user/',$record['id'],'">',$record['name'],'</a>';
Удачи в повторном использовании без имен столбцов ...