在我的數據庫設計中,我傾向於存儲一些用作ROLE或TYPE的變量,如SMALLINT
。例如:mysql自定義全局定義變量
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中定義)?
我也想在MySQL查詢做種
SELECT * FROM house WHERE type = HOUSE_SMALL_TYPE
。
我的目的是,當我在mysql中進行SELECT時,我沒有辦法將值0,1,2映射到它的真實含義。只需簡單地查看錶值,而不必更改結構表和字段。
我想你尋找[* ENUM *](http://dev.mysql.com/doc/refman/5.0/en/enum.html)。 – Rikesh 2013-03-13 09:33:36
定義「更好的方式」的標準。你想要改進什麼? – 2013-03-13 09:38:31
@Rikesh是否意味着我必須使用ENUM更改我的數據庫類型?我的表格有些被創建,但我會考慮下一個創建表格。 – 2013-03-13 09:46:43