以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于关联方案  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8933)

--  作者:实话实说
--  发布时间:2010/12/28 16:33:00
--  关于关联方案
    方案1 一般产品采用“产品分类”、“型号”、“规格”就可唯一标识该产品。用这三个字段作关联字段最简便,可减少一些不必要的代码,但当关联的表较多或数据量较大时,会严重影响运行速度。
    方案2 主表_Identify与子表的产品ID关联,通过设置代码将主表的“产品分类”、“型号”、“规格”带入子表,这时子表的“产品分类”、“型号”、“规格”都是数据列,可导出到SQL或ACCESS数据表。需要注意的是,由于代码是通过改变产品ID触发的,当子表行产生后,如果再改变主表的“产品分类”、“型号”、“规格”后,必须另外设置代码,让子表的“产品分类”、“型号”、“规格”同步更新。
    方案3 同样是主表的_Identify与子表的产品ID关联,“产品分类”、“型号”、“规格”列设置为表达式列,通过设置表达式列,可将主表的“产品分类”、“型号”、“规格”带入子表。然而,表达式列是不能导出到SQL表或ACCESS表的,这使得SQL表或ACCESS表的数据不够完整。
    方案4 还有一种情况,一般关联表的规范操作是,子表通过主表产生,即通过关联产生子表数据。实际应用中,有使用者提出要求将EXCEL数据(几万条)导入或复制粘贴到子表,如果按第1种关联方案没问题。但采用产品ID关联就得变通,即先复制粘贴,再用代码根据“产品分类”、“型号”、“规格”标识字段进行关联。(主表_Identify与子表的产品ID)
    以上是我对关联的理解和心得,请指正。肤浅之处,不要见笑。

--  作者:狐狸爸爸
--  发布时间:2010/12/28 16:45:00
--  

以我的理解,方案三最好,其实不存在“数据不完整”之说的,你所说的完整,换个说法就是冗余,从数据规范来说,是应该尽量避免的。

其实用SQL语句可以一次查询多个表的数据,组合成一个"完整"的表,所以不用担心。

 

如果以一定要完整,推荐方案1,三列也没有啥关系的,不简单对性能有多大的影响,之前你遇到的问题,不是多列关联造成的,而且新的版本已经解决。


--  作者:mr725
--  发布时间:2010/12/29 0:47:00
--  
为和所有表都要有“产品分类”、“型号”、“规格”三列呢,产品表有了就可以的··· 只是需要时把这三列和其他表得相关列合并起来就可以了嘛··· 这样节省空间的啊~
--  作者:实话实说
--  发布时间:2010/12/29 8:10:00
--  
以下是引用mr725在2010-12-29 0:47:00的发言:
为和所有表都要有“产品分类”、“型号”、“规格”三列呢,产品表有了就可以的··· 只是需要时把这三列和其他表得相关列合并起来就可以了嘛··· 这样节省空间的啊~

可能是习惯和用途不同吧,有了这三个字段就可以独立操作子表。