问题不小,简单回答:
数据库可以这样实现:
1、邮票基本信息库:邮票编号(关键字)、名称、发行日期、面值、枚数、齿孔大小、设计者、图像(直接保存图像吧,安全可靠)
2、分类库:类型编号,父类型编号,类型名称 -- 这是一个森林。
3、邮票-分类库:邮票编号,类型编号  --  这是一个多对多关系,(邮票编号,类型编号)为联合主键,同时邮票编号,类型编号又均为外键,分别参照邮票基本信息库、分类库里的邮票编号、类型编号。好了,剩下就是编程序的事了,要达到你的要求不难。例如:
“软件要有FlashGet(JetCar)那样的能新增和删除类别和子类别的功能”:就是对分类库进行维护,也就是对一个森林进行维护,如此而已。
“选中树型列表中一个专题名称,在界面右上方的ListView1显示邮票名称的列表”:实际上就是选择一个类型编号,然后在邮票-分类库中找到相应的邮票编号(一般说来可能很多,也可能唯一,或者没有),然后在邮票基本信息库中根据邮票编号找到相应的信息,然后放到控件中,准确地说是控件绑定的结果集中,如RecordSet(ADO)或cursor(VFP)或DataWindow(PB)。无论是ListView或dbgrid来显示或处理都行,根据你的具体要求。

解决方案 »

  1.   

    有多级分类的表的设计:
    level,name
    0100  xxx
    0101
    0200
    0201
      

  2.   

    你的库中“邮票编号(关键字)”只是针对邮票的编号。你至少还要有以下几类编码:(编码前两位为大类,后每两位加一小类)
    1、按集邮专题分类(如:01XX)
    2、按年份分类(如:1980、1989。。)
    3、按发行地区分类(如:03XX)
    4、按邮品品种分类(如:04XX)
    每个分类编码中有细类的可再增加,而每个编码对应其相应的“邮票编号(关键字)”如邮票编号为“12345”的一张票,与之对应的有0101、1980、0301、0401,就可以在四类不同的分类中进行查找。
    也可将分类编码记录在“邮票编号(关键字)”中,但应用起来很不方便。