CREATE TABLE t (ticket_id INT, user_id INT default 0, PRIMARY KEY (ticket_id));
INSERT INTO t(ticket_id) VALUES(rand()*1000000); //Генерация может занять долго, зато 1 раз :-)
UPDATE t SET user_id = 1 WHERE user_id = 0 limit 1; //Продаём билет.
<?
class MySingleton
{
static private $_instance;
private function __construct($params)
{
//При необходимости, недостающие параметры обработать тут.
$this->_params = $params;
}
public static function getInstance()
{
if (!self::$_instance instanceof self) {
self::$_instance = new self(func_get_args());
}
return self::$_instance;
}
...
}
MySingleton::getInstance('param1', 'param2', 'paramN')->doSomething();