客户:卡  1:N
那:
销售员:客户 呢?
用户和客户是什么关系?
软件销售价格又和哪个有关系?
甚至地址、邮编是什么的地址、邮编?客户?用户?销售员?
太多疑问了!!!!!真佩服 tj_dns(愉快的登山者) 能在这种情况下设计表结构,天才!

解决方案 »

  1.   

    ytweiwei(最近正在学VB):
    8992026(8992026)讲的很白了,把你的需求再说清楚一些,还有你的字段之间的关系。
      

  2.   

    to: OpenVMS(半知半解) 对于三表想说两句
    就是如果一个销售员卖给一个客户的一套软件中有多张卡(ytweiwei(最近正在学VB) 要求的)这种情况怎么处理?
    如何统计某个销售员的业绩?
    如何统计一个客户的购买量?
      

  3.   

    三表中应该用客户编号、产品编号、购买时间作为主键,应该加一个自动编号(ID)列,
    四表中用三表中的ID和卡号来表示卡与客户之间的关系!
      

  4.   

    TO:wylyf(李寻欢) 
    嘿嘿,卡号是不一样啊,唯一的吧:-)
      

  5.   

    to: OpenVMS(半知半解) 
    卡号是不一样的,但是没有办法用一个卡号唯一表示出来客户、购买产品、业务员之间的某一次特定的商业行为!
      

  6.   

    OpenVMS(半知半解) :你的表三中明显有误,一个客户他可以购买不同卡类型单同卡号。wylyf(李寻欢) 中也有此疏忽。
    客户编号,卡类型,卡号这三者就可以唯一表示一次特定的销售行为。
    wylyf(李寻欢) 考虑统计等需求很重要,但你设计的表连接查询的效率不会高。
    这方面的考虑就要靠楼主自己分析需求了。
      

  7.   

    Yang_(扬帆破浪)表二表三可分可合,视需求而定
      

  8.   

    to: blackhawk_yps(原来是这样) 
    ----客户编号,卡类型,卡号这三者就可以唯一表示一次特定的销售行为。
    你说的这个和楼主说的
    ------卡类型   (购买软件所附带的接收卡,每个客户至少有一个卡,还可以有多个,卡类型有 通视卡.永新卡等 )楼主的意思也就是说在一个产品中可以附带多张不同类型的卡,如果我这个理解不错的话,你的“客户编号,卡类型,卡号”如何来唯一表示这个客户购买这个产品的商业行为?是不是违背了数据库第二范式中说的只能依赖一个主键的说法?------但你设计的表连接查询的效率不会高。
    这一点请赐教!
      

  9.   

    我设计二表是考虑为了减少数据冗余而把卡类型单独列出来,不可避免的增加表连接查询的效率。这是如何取舍的问题!按我这种考虑的话应该把区域也给用一个表给单独表示出来。
        Yang_(扬帆破浪)的表设计中存在问题。
        表三本来的意思是想把软件产品和卡之间的关系给固定下来,不过不应该加“卡号”这个字段!加上之后却使一类软件产品具有一样的卡号和密码!没有办法表示出来一张卡与一个客户之间的关系!