I would do:
db.define_table('label',Field('fieldname'),Field('fieldlabel'))
labels=dict((r.fieldname,r.fieldlabel) for r in
db().select(db.label.ALL,cache=(cache.ram,3600)))
...
define other table: atable
...
for fieldname in db.atable.fields:
db.atable[fieldname].label = labels.get('fieldname',fieldname)
This will reduce the extra database access to a single query per hour
(3600). so no overhead.
On Jul 27, 2:18 pm, Jean-Guy <[email protected]> wrote:
> Hello,
>
> I would like to use data dictionnary stored in database to define field
> label and comment. The comment is used to provide help to users...
>
> I am wondering what could have the smaller impact on database performance :
>
> 1) create a python dictionnary like this :
>
> dictname = {fieldlablename:db().select()}
>
> in it own model... Then use the dictname['fieldlablename'] key in :
>
> db.define_table('atable',
> Field('field1'),
> Field('field2',label=dictname['fieldlablename']))
>
> OR
>
> 2) Just :
>
> db.define_table('atable',
> Field('field1'),
> Field('field2',label=db().select()))
>
> I expect that my first choice will result in the reducing request to
> database server and not overwrite the server database by database
> queries each time a form is called by a controller function... Is that
> correct?
>
> Regards
>
> Jonhy