# 谢谢您，不要工作的太晚，再请教您！

Posted by 王空空 on June 11, 1999 at 15:05:14:

In Reply to: Re: 汉堡来了！ posted by 大汉堡 on June 11, 1999 at 05:08:17:

: : 再请教一个Table的设计:现在如果这家店推出一种餐叫做套餐，也就是:主食类、副食类、甜点类、饮料类(这四个称为套餐的组成项目好了，且组成项目均是食物的群组，也就是说例如饮料类，可以有好多的饮料可供选择)。其套餐种类可能有其中二项或三项或是至多四项，但是套餐的项目，必须全部要点才构成套餐，这是一项要检查的，再来是如果客人点餐时(销售档，尚未写入资料库)，如果取消这个套餐，那这个套餐的组合就都要删除，如果我想做到当user按了组成套餐的任何一项时，就会删除所选的套餐这项功能时，请问要如何设计Table，及程式的逻辑，谢谢您的指导，谢谢！

: '我想点餐时,客人可能会直接点套餐,or 直接点汉堡 or Other 可吃的东东,而不是
: '点完细项后看能组成什么套餐(他只是来吃东西的),有了这些资讯,整理如下:
: '一.客人可能点套餐,也可能直接点食物的细项
: '二.套餐是由种类搭配组成,而不是食物细项
: '三'套餐和食物细项可卖,而种类只是区别用而已
: '这个问题和之前的问题有一点比较大的差别,就是之前是由细项要带出可置换的
: '产品,但是现在要用于点餐上,就不必去找需要被组合的型式,你可以将每一项被可
: '以被客人点的东西如套餐or可乐or薯条(有点像是个物件),都设定为一个产品,
: '所以你最少要一个<产品资料>Table,为了区分是怎样的产品,这个Table再加一个
: '栏位[类别]以区分你上述四类,另外将套餐视为另一类(这就算是属性了),所以
: '这个栏位共有五类,可以用1主食,2副食,3甜点,4饮料,5套餐,当类别为5时,需要
: '有套餐明细,所以再用一个<套餐明细>Table,记录这个套餐是那几类类别的组合
: '因此,点餐所选的产品类别 = 5,就请他将类别的食物细项点齐,else 就删除(
: '也就是没点齐不卖),如果和你的需求有不符处,再告知,已经五点了!!!!!!!!
: '失陪先.................

小弟现在设计的Table有:
1.产品类别Table(类别编号,类别名称)
2.产品Table(产品编号,名称,类别编号,价格)
3.套餐组合TAble(套餐编号,主食类别编号,副食类别编号,甜点类别编号,饮料类别编号)
4.销售主档
5.销售明细档(产品编号,产品名称,价格,类别编号,套餐编号)
现在小弟的销售明细档中，只记录套餐的编号，现在小弟的做法是:如果User点了一种套餐，如果要取消，点了其中一个产品时，如果有套餐编号，则将grid中是此编号的通通把背景颜色改掉，以示区别，做为删除的mark，也就是不会insert到销售档中。可是如果这个客人一开始点了A套餐，然后中间又单点一个饮料，然后又点了一客A套餐时，如果要取消时，小弟的程式就不正确了！

想请教汉堡兄，这样的TAble设计可不可以，以及针对上述状况时，您有何看法呢？谢谢您！

Follow Ups:

- Re: 先生..您的汉堡！ 大汉堡 04:33:34 6/12/99 (1)
  - Re:汉堡！汉堡？！ 王空空 09:54:12 6/14/99 (0)
- 个人建议 小吴 19:12:31 6/11/99 (1)
  - Re: 谢谢您，又能让我更头痛了！ 王空空 10:03:52 6/14/99 (0)