以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  产品编码表中信息引用的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=58835)

--  作者:HappyFt
--  发布时间:2014/10/24 16:05:00
--  产品编码表中信息引用的问题

产品编码表中有产品编码、品名、规格、计量单位这些基本的数据字段是项目中其他表中都会引用到的。按数据库的范式来讲在其他表中就不用再重复添加这些字段,只要一个产品编码字段即可,但这样用户光看编码有时看不懂,不直观,所以还必须在每个表中都要显示品名,规格等出来才行。现在不知道哪种方式来实现更合理?

 

1、其他所有表中均在后台数据库表中增加这些字段。这样每个表中都重复设置这些字段,感觉也很啰嗦,同时又增加数据库的容量。优点是表中使用时直接取数填充到里面就可以,用户查看时编码,规格等都可看到,比较直观。

2、其他所有的单据表后台数据库中只增加一列产品编码字段,其他字段用表达式,但这样表是用窗口中的sqltable fill的,打开窗口时要如何用代码增加表达式列。同时加载数据时也要用代码从产品编码表中查询这些基础字段进来,这样是不是效率比方式1慢很多,而用实现起来更繁琐。

 

不知上面哪种方法好些?还有没有其他的方法(我的表全部都是窗口动态fill的,事先都不加载)

 

谢谢!


--  作者:有点甜
--  发布时间:2014/10/24 16:20:00
--  

 结合1、2

 

 如果是使用窗口表,fill进来表格以后,动态添加临时列,可以用数据列,也可以用表达式。如果父表的数据是全部加载的话,用表达式方便;否则,用数据列,数据直接查找父表数据,赋值进去。


--  作者:HappyFt
--  发布时间:2014/10/24 16:26:00
--  
但这样不管哪个表当数据加载后即产品编码填入后都要用代码查找父表数据赋值进去,效率是不是很低啊,因为每次加载不同的数据都要反复从编码表中查找。
--  作者:有点甜
--  发布时间:2014/10/24 16:34:00
--  

 要速度,就要有适当数据冗余。

 

 数据库空间和执行效率之间,你自己去平衡。