What pbreit suggested assumes that all the company servers are at the same location as the company, which I guess is not what you wanted. It think it should rather be:
db.define_table('company',
Field('name'),
Field('location', db.location))
db.define_table('server',
Field('name'),
Field('company', db.company),
Field('location', db.location))
db.define_table('location',
Field('name'))

