问个数据库设计问题

有2张表
order(
int sendCom_id,
int aidCom_id,
.......(大约15个字段)
)
company(
int id,
nvarchar name,
.............(大约10字段)
)

查看order的时候要显示sendcom和aidcom的名字,
有3个方案:
1,在order表中再加2个公司name的字段
2,每次查看时级联查询
3,order表只要2个公司的name,不加公司id,在company表中做索引

不知道这3种方案哪个性价比最高,选用哪个比较好?
希望有经验的朋友能解答下。。谢谢

[quote]2,每次查看时级联查询 [/quote]

这个好吧,另外两种方案在公司名字需要更新或修改时代价比较大。

可以考虑这样:

1 如果公司名不经常改而且数量不是非常多的话,你可以在系统加载的时候就把所有公司id和对应的名字加载到内存里,具体方法比如可以加载成hibernate的二级缓存,或是读到memcache里,等等

2 如果有业务问题的话,比如说: 你这个订单下单时对应的公司名是A,公司后来名字改成B,但是你们的业务要求你们在打印或显示订单时仍然要显示A,这时就要采用方案1了,这时加的name,就不是冗余字段了