客户这样要求如何设计表呢?改列名与数据类型
客户有这样的要求
在计算货物时,他们要自定义计算,如现在表有这样字段
产品名称 型号 单价 数量 金额
我默认也就这样给客户显示.
计算方式是单价*数量=金额.
可客户会要修改列名,如:型号他改成规格,或者他还想自己增加一些列名来计算.
计算方式他要自定义,如单价*数量*1.1=金额.
------解决方案--------------------主体表,你设置成:产品名称 id 自定义1 单价 数量 公式 金额
分表,你设置成 ID 表名(其记录就是客户自定义的列名)
查询时,你搞关联,把主表ID对应的分表ID那行的表名替换主表“自定义1”的表头。你明白么!
------解决方案--------------------你干脆不要做关联了,如下:
主体表:你设置成:id,产品名称,自定义1,自定义2,单价,数量,公式,金额
你的报表要求显示:产品名称 型号 单价 数量 金额 或者客户自定义列名的话,报表显示:产品名称 规格 单价 数量 金额
你要清楚的是,客户要求是看程序出的东西,比如是报表,并不是数据库结构,所以数据库结构的列名不需要转换。
程序如下实现:当客户输入产品信息的时候,在型号规格处,给一个选择,选“型号”两字,或选“规格”两字,此处信息,存放在“自定义1”字段里,在再给一个输入框输入具体的型号,此处信息放在“自定义2”字段里,再给一个输入框或选择框,用于让客户自定义公式,此处信息放在“公式”字段里。出表的时候,我不知道,你的客户需要怎样显示,不管客户需要怎么显示,你都可以用程序来实现。比如,客户要看“型号”或“规格”的产品,你用select 语句来筛选“自定义1”的内容,然后把“自定义1”的内容给一个变量,然后把这个变量的值分配给报表控件的“规格”或“型号”的表头处,然后报表金额处,用数据库对应行的公式来计算就行了。
------解决方案-------------------- 其实,你应该专门建立一个产品档案表,里面不包括单价,金额,计算公式,然后再建立一个出入库的表。
还有,给你提个意见,客户的具体要求是什么,比如,客户需要具体什么样的报表,需要按照什么条件查询等,请描述清楚,我看了你的帖子,我并没有看到具体需求,所以我才这样给你回答。
------解决方案--------------------首先要了解客户想怎么算,让可以发挥“无穷的想象力”是灾难的开始,最好设定要一个标准,比如可以仅仅可以设定一个百分比,那么加个字段来存放这个百分比即可。如果没设定就默认为1.