[Phpmyadmin-devel] official domain name phpmyadmin.net

Robin Johnson robbat2 at fermi.orbis-terrarum.net
Tue Apr 9 20:08:37 CEST 2002


On Tue, 9 Apr 2002, Marc Delisle wrote:
> For example, let's talk about $cfgShowBlob and assume that this can be
> a master and a user pref.
>
> I guess you have put a "ShowBlob" field in the config_master table.
>
> It would be more flexible not to have the actual cfg variable names
> as fields, but as data, so the config_master table would have 2 fields:
> the cfg variable name, and the cfg variable value (possibly serialized).
Yes, that is how I was considering doing it.

But there is one additional layer I had considered.

In the initial load of variables, we would do them in this order:
1. load variables from configuration file (base defaults and
username/password for database access initially).
2. if configuration type is database, read in config_master
3. if configuration global allow user override, read in config_user on
fields that have allow_override set in the config_master table.
4. in the config_user table, if allow_override is set, then the user can
change that preference on their own. Otherwise the admin must set it for
the user.

> This is because we have to think about future PMA upgrades and avoid
> users having to add fields to config_master.
>
> What do you think of that?
Yes. it would be good.

> Maybe a third field to indicate if this can be overriden by the user
> (indicating a possible search in config_user).
Here are my two table structures that I have been playing around with:

CREATE TABLE config_master (
  option VARCHAR(255) NOT NULL DEFAULT '',
  value TEXT,
  allow_override BOOL NOT NULL DEFAULT '0',
  PRIMARY KEY  (option),
  KEY allow_override (allow_override)
) TYPE=MyISAM COMMENT='Master Configuration Options';

CREATE TABLE config_user (
  user VARCHAR(255) NOT NULL DEFAULT '',
  option VARCHAR(255) NOT NULL DEFAULT '',
  value TEXT,
  allow_override BOOL NOT NULL DEFAULT '0',
  PRIMARY KEY  (option),
  KEY allow_override (allow_override)
) TYPE=MyISAM COMMENT='User Configuration Options';

Looking at this, there are some questions I have, for people.
should the 'value' column be BLOB type or TEXT type?
How large will the data be? Could we shring it to TINYTEXT/BLOB or
VARCHAR(255) ?

> It is ok for me to require sessions for this, you are right about performance,
> and also because this will be an optional configuration mecanism.
Ok.

For security reasons, I also propose doing away with the 'only_db' option,
as it is only a very poor substituate for proper user rights in MySQL.

-- 
Robin Hugh Johnson
E-Mail     : robbat2 at orbis-terrarum.net
Home Page  : http://www.orbis-terrarum.net/?l=people.robbat2
ICQ#       : 30269588 or 41961639






More information about the Developers mailing list