I don't really understand the question but I would think something like 
this:

db.define_table('company',
    Field('name'))

db.define_table('server',
    Field('name'),
    Field('company', db.company),
    Field('location', db.location))

db.define_table('location',
    Field('name'))

Or since each company only has one location:

db.define_table('company',
    Field('name'),
    Field('location'))

db.define_table('server',
    Field('name'),
    Field('company_id', db.company))

To get the location of the server #1, you have to do a query:

record = 
db(db.server.id==1)(db.server.company_id==db.company.id).select().first()
location = record.company.location

Reply via email to