Я хотел знать, была ли хорошая практика для списка управления значениями. Например, у меня есть журналы таблицы базы данных:
--------------- | logs | |-------------| | id | | idLogType | | message | | date | ---------------
Мой вопрос касается поля "idLogType". Я знаю, что перечисление - не лучший способ справиться с этим видом поля, потому что, если я хочу добавить новые значения, у меня есть ALTER table. Поэтому я собираюсь создать список значений.
Какова ваша рекомендация для обработки списка значений?
1. Только с константами PHP?
class LogTypeValues {
const LOGTYPE_CREATION = 1;
const LOGTYPE_EDITION = 2;
const LOGTYPE_DELETION = 3;
private $_logTypes = array();
public function __construct() {
$this->_logTypes[self::LOGTYPE_CREATION] = "Creation";
$this->_logTypes[self::LOGTYPE_EDITION] = "Edition";
$this->_logTypes[self::LOGTYPE_DELETION] = "Deletion";
}
public function getId($logType) { ... }
public function getLogType($id) { ... }
}
$request = $pdo->prepare('INSERT INTO logs SET idLogType = :idLogType, ...');
$request->execute(array('idLogType' => LogTypeValues::LOGTYPE_CREATION));
2. Только с базой данных?
------------ | logTypes | ------------ | id | | logType | ------------
<?php
$request = $pdo->prepare('INSERT INTO logs SET idLogType = 1, ...');
$request->execute(array());
3. В базе данных, но также с константами PHP?
------------ | logTypes | ------------ | id | | logType | ------------
class LogTypeValues {
const LOGTYPE_CREATION = 1;
const LOGTYPE_EDITION = 2;
const LOGTYPE_DELETION = 3;
}
Что вы думаете об этих 3 методах?