订单数据表如何设计
你做的是C-C的网站,也就是客户对客户的,数据库的设计相对也就麻烦一些。不过你们既是学生,也不用过于严谨,一般符合数据库三大范式前两个就行了。
首先你要明确自己要做什么,接着就是画出E-R图(实体关系图),E-R图画出来,数据库基本上就出来了。以我自己多年的开发经验,你们的项目最少需要十来张表,用户的信息(登陆、注册)就要两张,还有订单表也要两张,其他的用户发布的交易
只要在表里面加一个字段就行
create table order
(
order_id varchar(20),--订单编号
shuliang int,--数量
ok_wan int default 0,--已完成数量,签订单时默认写0 以后每次完成一批后就修改这个数据
)
其中一个订单包括多种商品,每种商品有所属的种类和数量,而这些信息都被记录在订单详情记录表中。订单表和订单详情记录表通过订单编号连接起来。至于各个表的属性还要看您的具体需求来定。
另一个放订单包含的商品,有商品id,折扣,数量。一个订单可以包含一个或多个商品。
再一个表放送货地址、发票、付款方式等乱七八糟信息。
你担心汇总明细金额时太慢,我觉得这是多余的,一张订单的明细数据能有多少呢?1万条,够多了吧?可是即使是3万条,一个“sum(金额)”的查询也是很快的。
关于怕程序运行一半出问题的事情,你可以在做程序时用事务控制一下。(事务:多条数据库写入操作的集合,特性是要么所有操作都执行成功,要么所有操作都被回滚,取消执行),这样就保证了你数据的一致性。
新建表单点击文件>新建表单
拖入组件:表单需要有1个下拉框控件,一个文本控件,以及对应的2个标签控件,还需要一个以表格形式显示数据的报表块,此时,我们确定了需要在表单中添加一个报表块,4个控件。
参数组件:从工具栏中将参数组件拖拽至表单主体中,并将相应的四个控件:下拉框、文本、2个标签控件拖拽至参数组件中
报表块组件:从工具栏中将报表组件也拖拽至表单主体中
充满展现区域:是指在web端展示的时候,所有组件自适应充满整个浏览器页面显示,不出现滚动条自适应原样缩放:是指在web端展示的时候根据制作表单时候组件大小比例显示,并不缩放充满整个web页面,如果超过页面大小,会出现滚动条。
控件绑定数据
定义数据集
效果图中,新建数据集ds1:SELECt * FROM 订单 where 订单ID=${orderid},参数orderid的默认值为10001,。
订单ID下拉框
选中下拉框控件拖拽到适当位置,下拉框控件名设为“orderid”,数据字典来自FRDemo数据库的订单表(数据类型选择数据库表,数据库选择FRDemo),实际值和显示值均为订单ID,控件值为空。
客户ID文本框
选中文本框控件拖拽到适当位置,文本框控件名为customerid,控件值选择为绑定字段,数据来源于ds1数据集中的客户ID字段。
报表块
参数面板与控件都已经设置好之后,点开报表块里面的触笔按钮,进行报表块编辑界面。
最后进行表样设计。
我的经验:我是以客户名称的不同从上到下将一张sheet分成不同的几个部分,也就是每个客户的定单相对集中在一起。然后根据下定单时间先后排列定单。
以下几个列名要有。日期肯定要有,定单号、产品编号、产品名称、单价、总金额、生产部门(工厂)、联系人(如果有多个联系人的话)、预计交货期、实际出货日期。。。其他就根据实际添加或删除。
希望能帮到你
商品表肯定是商品id,商品名称等信息,绝对不会有订单id在商品表。
订单表有这样的设计方式,订单id,商品id。唯一值肯定不是订单id,可以设置为自增列。一行数据只放一个商品id。相当于一个订单id有多行数据。
那这样就很简单了。
你点击某个订单查看里面详情的时候,点击事件传的肯定是订单id。然后在订单表里面加where条件,把该订单所有数据查找出来,然后在关联商品表,例如下面sql:
select * from dingdan dd
left join shangpin sp on sp.商品id=dd.商品id
where dingdanID='订单号1'
至于你要把这个sql结果集放到什么里面,list,还是dataset,还是datatable就由你决定了。