日期:2014-05-17  浏览次数:20701 次

字段间关系怎么处理最好?
比如表A某字段的值,是表B某字段+表C某字段
或者复杂点,是SUM(表D某字段)的值再乘以top 1(表E某字段的值)

总之一个表的某个值是另外的表的关联。

这种关系,是在设计数据库的时候就在表关系里写好,还是在程序里控制好?

哪种性能好?

------解决方案--------------------
你程序里面插入数据的时候又来弄嘛,搞那么复杂
------解决方案--------------------
數據庫里應該要用觸發器去處理這種邏輯吧.
或是用存儲過程在前臺程序里調用.

不過我通常是不喜歡這種冗餘的.搞不好就不一至了.然后在晚上搞個存儲過程去刷數據.
我還是喜歡現用現連接查詢出來,如果性能可能接受的話.

------解决方案--------------------
楼主,个人建议:

1 首先看你的数据表的数据量多达,是否经常数据变动?

2 如果经常变动,建议使用触发器,将计算好的列实时更新到一张结果集表中,程序直接调用算好的结果即可。

  如果不经常变动,可通过作业定时生成结果集表,比如一小时生成一次。

3 不建议程序中使用时对这种逻辑进行处理,因为插入一张表的列,再要将列值返回给DB继续查询相关联表的列以计算结果,效率会很慢

SQL Server 现已有计算列,在创建表的列时,可以定义成计算公式,自动生成计算后值绑定该列,但是限制条件比较多,仅供参考,具体可以查看联机丛书。
------解决方案--------------------
同意LS的。如果关系部复杂的话,建议用计算列。