我想知道是否有关于列表值管理的良好实践。例如,我有一个名为logs的数据库表如下:
--------------- | logs | |-------------| | id | | idLogType | | message | | date | ---------------
我的问题是关于“idLogType”字段。我知道枚举不是处理这种类型字段的好方法,因为如果我想添加新值,我必须修改表结构。所以我打算创建一个值列表。
您有什么建议来处理值列表吗?
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;
}
你对这三种方法有什么想法?