在我的数据库设计中,我倾向于将一些旨在充当 ROLE 或 TYPE 的变量存储为SMALLINT
.
例如:
CREATE TABLE `house` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` smallint(11) NOT NULL,
在 PHP 中,我这样做:
define('HOUSE_SMALL_TYPE', '0');
define('HOUSE_MEDIUM_TYPE', '1');
所以在 PHP 中,在SELECT
查询中我会:
$this->db->query("SELECT * FROM house
WHERE type = ?;", HOUSE_SMALL_TYPE);
我的问题是:
- 在 PHP 部分,有没有更好的方法来做到这一点?
- 在 MySQL 本身中,MySQL 是否也具有全局定义功能(如 PHP 中的定义)?
我也想做点什么
SELECT * FROM house WHERE type = HOUSE_SMALL_TYPE;
在 MySQL 查询中。
我的目的是,当我在 MySQL 中执行 SELECT 时,我绝不会继续将值 0、1、2 与其真正含义进行映射。只是方便查看表值,而不更改结构表和字段。