需要表中的累积字段

时间:2012-01-18 12:07:59

标签: sql sybase-ase

数据库:Sybase ASE 15.0.3

表:

authors(int author_id, varchar(20) author_name)
books(int author_id,int number_of_pages)

我需要在表中添加一个新字段" authors" for total_number_of_pages(作者所写的所有书籍的页数之和)。

这可以通过(可能物化的)计算字段来完成吗?

我不喜欢观点的想法,如果可能的话,我真的更希望该字段出现在表格作者中。

1 个答案:

答案 0 :(得分:1)

使用正确的索引(在author_id上),View解决方案实际上应该非常快。这只是一个简单的聚合。除非每位作者有数百本或数千本书,否则这根本不应成为问题。 (我希望每位作者的平均书籍数量低于或大约10?)


如果确实确实需要对此进行优化并存储缓存值,我建议使用触发器。

随着书籍的添加,删除或更新,在books表中,您可以适当地更改authors表中的值。这意味着可能重新计算的次数最少。

这样做的缺点是在设计中增加了复杂性和相互依赖性。