Re: mysql custom global defined variable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mar 13, 2013, at 10:35 AM, Kevin Peterson wrote:

> In my database design, I tend to store some variable that is meant to be acting as a ROLE or TYPE as SMALLINT. For example : 
> 
>    CREATE TABLE `house` (
>       `id` int(11) NOT NULL AUTO_INCREMENT,
>       `type` smallint(11) NOT NULL,
>    )
> 
> 
> And in php, I do
> 
>    define('HOUSE_SMALL_TYPE', '0');
>    define('HOUSE_MEDIUM_TYPE', '1');
> 
> So in php, in SELECT queries I do :
> 
>    $this->db->query("SELECT * FROM house  
>                        WHERE type=?;", HOUSE_SMALL_TYPE);
> 
> My questions are : 
> 1. In the php part, is there is a better way to do this ? 
> 2. In the mysql itself, does mysql also has global define functionality (like the define in php) ? I also want to do kind of SELECT * FROM house WHERE type = HOUSE_SMALL_TYPE in mysql query.
> 


Question 1:
I see no possible improvements, you could however use an array with values instead of constants, but that's rather a personal choice as I don't like constants that much, unless you are on your own namespace.

My example implementation:

$houseTypes = array(
	'house_small_type' => 0,
	'house_medium_type' => 1,
	etc.
);

Question 2:
You could use ENUM data type, but it has quite a few disadvantages:
1- Translation could be tricky to implement
2- DDL shouldn't be used for data!
3- Updating or deleting values can leave your old records in an inconsistent state

You can also use SET to set variables, I've never used them but I think they could work in your case: 
http://dev.mysql.com/doc/refman/5.5/en/user-variables.html

Greetings.
-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux