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