1. 型号表(各种产品的型号及其基本信息)
2. 配码表(指定配码规则,用户可以修改,外键为 型号表 中的主键)
3. 配码箱表(每一个箱子的信息,注意与以上两个表建立外键关联)
4. 产品表(每一双鞋的产品信息,外键为 型号表 中的主键,另外加一个字段,表明该产品属于哪一个配码箱或者是散鞋)其他的就是设计与算法问题了,用Delphi做肯定没有问题

解决方案 »

  1.   

    BossHawk大侠,3、4点麻烦你再讲详细一点行吗?我好急啊,我另加100分啊。HELP~~~~
      

  2.   

    我的理解是这样的(如果理解有较大的偏差,那么以下的方案就不大合适了:)
        你有一大堆鞋子,不同型号不同尺码.鞋子要么装箱要么是散鞋,如果装箱就要按照一定的配码规则进行,每种型号的有不同的配码规则(这里我认为装在一个箱子里面的只能是一种型号),所以我想可以建立以下几个表(因为鞋子尺码是在一个固定的范围内,所以不用建立尺码表),并且我给出了关键字段,至于其他表和字段你可以根据需要扩充:
        1.型号表(关键字段: "型号", 此字段作为主键,其他字段可以是描述此种型号鞋子的公共属性)
        2.配码表(关键字段: "ID","型号","配码", 其中"ID"作为主键,给每一种配码一个唯一的编号,"型号" 与 "型号表"的"型号"字段建立外键关联,保证每一种配码属于某个型号, "配码"字段描述你的配码规则,就象你说的35:1 40:3 42:8之类的."型号"和"配码"两个字段组合起来作一个唯一索引,保证每个型号下的配码不要重复)
        3.配码箱表(关键字段: "ID","配码ID" 其中"ID"字段为主键,给每一个箱子一个唯一编号,可以是箱子本身的编号或者其他什么唯一标志箱子的值,"配码ID"与"配码表"的"ID"字段建立外键联系,表明这个箱子是属于什么型号以及采用何种配码规则装箱)
        4.鞋子信息表(关键字段: "ID","配码箱ID" 其中"ID"字段为主键,给每一双鞋子一个唯一编号,"配码箱ID"字段表明此鞋属于哪个箱子,此字段不赋值表示是散鞋)
        在此基础上就可以实现你说的几个功能了,其中的某些字段可以由程序自动生成(如果用户不必输入的话),配码箱可以是实际的箱子,也可以是设想的若干鞋子(属于同一配码)的假象箱子,至于怎样才能让用户操作方便,你就慢慢想了,总不至于俺帮你把代码写出来吧J,假如你对以上简单的数据库术语补懂,你就别接这个玩艺了,赶紧学东西要紧!!
      

  3.   

    谢谢各位!
    bosshawk(BossHawk),我很赞同你的数据表结构设计方式。我现在把我的问题说得更明白些。
    1、该工程是由于客户反悔要返功的软件。原因是客户先说不做配码,只做各码段数据就可以了,后来试运行一段时间后,给实际工作带来着一些问题。所以反悔要做配码表。现在产品资料只有一个表,即型号表,包括型号、数量、35码至46码各数据等字段信息。其它出入库表、盘点表等等是主从表关系,明细表也是记录了型号、数量、35至46码的数量等信息。从此处看我的数据表该怎样作调整。2、bosshawk,你所说的第3个表,即配码箱表在我看来好像没多大作用。因为客户不可能记录每个进出库箱子的信息。我有这样考虑:第3表(即配码箱表)不要,将第2表(配码表)增加一字段为数量,即发映某一型号的某一配码的在库存中的箱数,即使拆箱实现方法也很简单。3、再增加一乱码表,记录各型号35至46码的乱码双数。这样就不用更改原来数据表的结构而实现客户所要求的配码功能。因为我还有销售订单的管理已完功,如若更改原来的数据库结构程序将作很大部分的改动,非常糟糕的。你看以上想法如何??请留下你的QQ和EMAIL行吗?
      

  4.   

    既然有这麽多制约条件,看来也只好如此了
    不过我不知道你用的什么数据库,一般来说你增加 数量 字段会有一定的问题
    数量是可以通过查询计算得到的,不知你在整体上有没有考虑过,假如你的数据库不支持或者你没有使用 事务 的话,是由可能产生不完整的数据的QQ 3909715
    email [email protected]
      

  5.   

    bosshawk(BossHawk) 的方法可行,不过我还有点建议:没有散鞋,它们应该重新装箱,最好是纯型号的,以后再有特定客户先拆这些给他,其实如果客户要求变化较频繁,应该使用2个库(逻辑库),一个存放纯型号的产品(未装箱),一个配码。平时只把最常见的配码装箱。
    想不到这行业这么变态。
      

  6.   

    bosshawk,我使用事务的。用户有时的一些只能要求有一个实时的库存数据。Thanks!