问答题


阅读以下说明,回答问题。
【说明】
某公司要开发一个销售管理系统,该系统的主要功能是:处理客户和销售员送来的订单;工厂是根据订货安排生产的,交出货物同时开出发票,收到客户付款后,根据发票存根进行应收款处理。每张订单由订单号,若干头信息和订单细节组成。一张订单可定购多种产品,工厂对大宗订货给予优惠。每种产品都规定了不同订货数量的折扣。
根据上述要求公司的销售部王经理写下了以下数据表结构:
客户:(客户号,客户名,地址,电话)
订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额)
应收账款:(客户号,订单号,发票号,应收金额,支付日期,支付金额,当前余额)
产品描述:(产品号,产品名,单价,重量)
折扣规则:(产品号,订货量,折扣)
【问题2】
上面的关系模式中还有不是第二范式的,请将其转为第二范式。并确定新数据表的主码。

【参考答案】

将数据表:订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额)拆分为:订单:(订单号,客户号,订货项数(可......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
【程序说明】定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边形顶点数、各顶点的纵横坐标、当多边形顶点数为0时,链表创建结束。(3)编写一个函数disp,删除链表中的所有结点。需要注意的是:要先释放结点数据内存,再删除结点,如果在释放结点数据内存单元之前删除结点,则无法找到结点数据内存单元的地址,也就无法释放数据的内存单元。【程序】#include iomanip.h struct polygon{int n;int* x;int *y;polygon * next;};void Push(polygon * & head,int n){polygon * newNOde=newpolygon;newNOde=newpo,Ygon;newNOde->next= (1) ;newNOde->x=new int [n];newNOde->y=new int[n];newNOde->n= (2) ;for(int i=0;i<= (3) ;i++){cout<<“请输入多边形各顶点x、y坐标,坐标值之间用空格分隔:”;cin>>newNOde->x[i]>>newNOde->y[i];}(4) =head; 在head前不需要额外的。head=newNOde;}polygon * create(){polygon * head=NULL;polygon * tail;int n;cout<<“请输入多边形顶点的个数(顶点个数为0时结束):”;cin>>n;if(n==0)return (5) ;Push(head, (6) ;tail=head;cout<<“请输入多边形顶点的个数(顶点个数为0时结束):”;cin>>n;while(n!=0){Push(tail->next, (7) ; 在tail->next增加结点tail =tail->next; advance tail to point to last nodecout<<“请输入多边形顶点的个数(顶点个数为0时结束):”;cin>>n;}return head;}void disp(polygon * head){int i,No=1;cout<<setw(10)<< x <<setw(6)<< y <<end1;while(head!=NULL){cout<<“第” <<No<<“结点:” <<end1;for(i=0;i<=head->n-1;i++)cout<<setw(10)<<head- >x[i]<<setw(6)<<head- >y[i]<<endl;(8) ;head= (9) ;} Match while statement}void del(polygon * head){polygon * p;while(head!=NULL){p= (10) ;head=head->next;delete p->x;delete P->y;deletep;} Match while statement}void main(){polygon * head;head=create();disp(head);del(head);}