Many thanks for this, I found it to be helpful :)

On Wednesday, May 28, 2014 6:30:31 AM UTC-5, yamandu wrote:
>
> Give a look here: 
> http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Legacy-databases-and-keyed-tables
>
> But I think it won't work in your case because name is a string.
> Our you can model it another way.
>
> db.define_table('tiers',
>     Field('name', 'string'),
>     Field('created_on', 'datetime', default=request.now),
>     format = '%(name)s')
>
> db.define_table('metrics',
>     Field('tier_name', 'string', requires=IS_IN_DB(db, 'tiers.name
> ',%(name)s')),
>     Field('total_count', 'integer'),
>     Field('total_size', 'bigint'),
>     Field('created_on', 'datetime', default=request.now))
>
> However, this will not enforce reference at db level, only in application.
> But you can query an join it by name without problems.
>
> query = db(db.tiers.name == db.metrics.tier_name).select()
> metric = db(db.metrics.tier_name == 'name').select()
>
> or you can obviously write a helper function to short it
>
> get_metrics = lambda name: db(db.metrics.tier_name == name).select()
> get_tier = lambda name: db(db.tier.name == name).select().first()
>
> tier = get_tier(name)
> tier_metrics = get_metrics(name)
>
>
> 2014-05-27 21:35 GMT-03:00 'Michael Gheith' via web2py-users <
> web...@googlegroups.com <javascript:>>:
>
>> I have two pretty basic tables:
>>
>> db.define_table('tiers',
>>     Field('name', 'string'),
>>     Field('created_on', 'datetime', default=request.now),
>>     format = '%(name)s')
>>
>> db.define_table('metrics',
>>     Field('tier_id', 'reference tiers'),
>>     Field('total_count', 'integer'),
>>     Field('total_size', 'bigint'),
>>     Field('created_on', 'datetime', default=request.now))
>>
>> I pre populated my tiers table with data.  When I store data in my 
>> metrics table, I don't know off hand the tier_id.  I know the tier name 
>> though.  Is there a way I can use the tier name instead of the tier_id in 
>> this reference?
>>  
>> -- 
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to web2py+un...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Att.
>
> Carlos J. Costa
> Cientista da Computação
> Esp. Gestão em Telecom
>
> EL MELECH NEEMAN!
> אָמֵן
>
> 

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to